숨겨진 모드에서 process.start를 사용하여 간단한 .net exe/notepad.exe를 열려고합니다. 나중에 process.exe를 사용하여 잠시 후에 프로세스를 볼 수있게해야합니다. 단지 WindowStyle.Minimized, WindowStyle.Maximized, WindowStyle.Normal 취급받을WindowStyle.Hidden으로 System.Diagnostics.Process.Start가 핸들을 다시 처리하지 않습니다.
가능. 숨겨진 스타일에서는 항상 0입니다.
Thread.Sleep을 사용하지 않고 핸들을 얻는 방법. 우리가 손을 잡기까지 몇 초 기다려야합니다. 일부 exe는 성능 (대용량 데이터)에 따라 대기 시간이 더 필요합니다.
public static void LaunchExe() { var proc = new Process { StartInfo = { FileName = "Notepad.exe", //or any simple .net exe WindowStyle = ProcessWindowStyle.Hidden } }; proc.Start(); proc.WaitForInputIdle(800); //is it possible to avoid this. Thread.Sleep(3000); //is it possible to avoid this. Console.WriteLine("handle {0}", proc.MainWindowHandle); //ShowWindowAsync(proc.MainWindowHandle, 1); //planned to use, to make it visible. }
예. 도움이 될 것입니다. 숨겨진 프로세스를 처리 할 수있는 옵션이 있습니까? – anand
@anand 내 대답을 편집했습니다. 덕분에 –
. 내 실제 요구 사항은 팀 개발자가 개발 한 exe를 열고 핸들을 얻고 exe를 .net winform 안에 표시합니다. 최소화 된 옵션이 해당 exe에 대해 작동하지 않습니다. winform.exe, 메모장에서 작동합니다. – anand