2012-04-18 2 views
0

В настоящее время я решаю проблему запуска внешнего инструмента из приложения .net. У меня есть эта часть кода:Отправить запрос на диагностику.Process

proc.StartInfo = new ProcessStartInfo(_app, _args); 
proc.StartInfo.UseShellExecute = false; 
proc.StartInfo.RedirectStandardInput = true; 
proc.StartInfo.RedirectStandardOutput = true; 
proc.StartInfo.RedirectStandardError = true; 
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 

Но, после запуска приложения я получаю сообщение об ошибке StandartError выход WITN ответ подтверждения ПРОМТ «введите Y/N». Я уже пытался ввести «y» через стандартный вход, сразу после запуска, но все равно получаю ту же ошибку.

var standartInput = proc.StandardInput; 
    standartInput.AutoFlush = true; 
    standartInput.WriteLine("y"); 
    standartInput.Close(); 

Я очень благодарен за любую помощь. Благодарю.

PS: Клиент PuTTY Secure Copy - это внешнее приложение, которое я использую из кода. При запуске приложения в первый раз, чтобы сохранить серверный отпечаток в системном реестре, есть подтверждение promt.

+0

Вам нужно рассказать нам о внешнем приложении .net и о том, чего он ожидает. Трудно сказать, в чем проблема, с которой вы столкнулись. – abhilash

+0

Хорошо, обновленный пост. –

+0

Спасибо, Можете ли вы предоставить нам несколько фиктивных аргументов того, что вы ожидаете передать для PSCP? – abhilash

ответ

0

Код выглядит хорошо для меня. Возможно, вам нужно спать секунду или что-то еще, прежде чем писать «y». Я бы предположил, что программа занимает немного времени, чтобы попросить пользователя ввести

+0

Уже пробовал, оба пути от debug и thread.sleep –

+0

Проблема была в пакетном аргументе, pscp автоматически отказывается от подключения при наличии атрибута пакета. –

Смежные вопросы