2009-07-24 6 views
2

나는 WindowsForm (C# .net 3.5)에 있으며 단추를 클릭하면 Process.Start()를 사용하여 다른 외부 응용 프로그램 (.net 3.5)을 시작하고 시작할 때 사용 가능한시기를 이해합니다.Winform이 Process.Start에 의해로드되는시기를 어떻게 알 수 있습니까?

ProcessStartInfo psInfo = new ProcessStartInfo(@"MyApplication.exe"); 
psInfo.RedirectStandardOutput = true; 
psInfo.RedirectStandardError = true; 
psInfo.UseShellExecute = false; 
psInfo.CreateNoWindow = true; 
Process proc = Process.Start(psInfo); 

proc... IsFullyLoaded()? 

어떻게 할 수 있습니까?

답변

3

프로세스가 해당 양식을 만들 때까지 기다리려면 메서드를 호출하십시오.

가 준비하는지 여부를 확인하려면 다음을 수행하십시오 양자 택일

bool isReady = proc.WaitForInputIdle(0); 

또는를,

bool isReady = (proc.MainWindowHandle != IntPtr.Zero); 

당신은 또한 SendMessage API 함수를 사용하여 양식에 메시지를 보내도록 MainWindowHandle 속성을 사용할 수 있습니다

0

프로세스가 시작된 방법을 알리는 인수를 전달할 수 있습니다.

psInfo.Arguments = "-startedByProcess"; 

그런 다음 원격 또는 그런 일을 통해, 그것이 시작 알려 소유자 프로세스로 자식 프로세스 콜백 있습니다.

관련 문제