2012-04-18 3 views
0

현재 .net 앱에서 외부 도구를 시작하는 문제를 해결하고 있습니다.Diagnostics.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; 

하지만, 출력 witn의 PROMT 확인 응답을 StandartError에 오류가 응용 프로그램을 시작한 후 "Y를 입력/N" 나는 코드의이 부분을 가지고있다. 프로세스 시작 직후에 standart 입력을 통해 "y"를 입력하려고 시도했지만 여전히 동일한 오류가 발생합니다.

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

정말 감사드립니다. 감사.

PS : PuTTY Secure Copy 클라이언트 - 코드에서 사용하는 외부 앱입니다. 시스템 레지스트리에 서버 지문을 저장하기 위해 앱을 처음 실행할 때 확인 약속이 있습니다.

+0

외부 .net 앱에 대해 알려 주어야하고 무엇이 필요합니다. 당신이 겪고있는 문제가 무엇인지 여기에서 말하는 것은 정말로 어렵습니다. – abhilash

+0

좋아, 업데이트 된 게시물. –

+0

감사합니다. PSCP에 전달할 것으로 예상되는 것 중 일부를 제공 할 수 있습니까? – abhilash

답변

0

코드는 나에게 잘 보입니다. 어쩌면 당신은 "y"를 쓰기 전에 잠시 잠을 자야 할 것입니다. 사용자가 입력을 요청하는 데 약간의 시간이 걸린다는 것을 알고 있습니다.

+0

이미 디버그와 thread.sleep의 두 가지 방법으로 시도했습니다. –

+0

배치 인수에 문제가있어 pscp가 배치 속성이 존재하면 자동으로 연결을 포기합니다. –