Como esconder / reexibir um processo em c #?
Eu estou tentando iniciar um processo externo em um aplicativo do Visual C # 2010 - Windows Forms. O objetivo é iniciar o processo como uma janela oculta e exibir a janela posteriormente.
Eu atualizei meu progresso:
<code>//Initialization [DllImport("user32.dll")] private static extern bool ShowWindow(IntPtr hwnd, int nCmdShow); [DllImport("user32.dll")] private static extern bool EnableWindow(IntPtr hwnd, bool enable); [DllImport("user32.dll")] private static extern bool MoveWindow(IntPtr handle, int x, int y, int width, int height, bool redraw); SW_SHOW = 5; </code>
O seguinte foi colocado na minha função principal:
<code>ProcessStartInfo info = new ProcessStartInfo("process.exe"); info.WindowStyle = ProcessWindowStyle.Hidden; Process p = Process.Start(info); p.WaitForInputIdle(); IntPtr HWND = p.MainWindowHandle; System.Threading.Thread.Sleep(1000); ShowWindow(HWND, SW_SHOW); EnableWindow(HWND, true); MoveWindow(HWND, 0, 0, 640, 480, true); </code>
No entanto, porque a janela foi iniciada como "oculta"p.MainWindowHandle = 0
. Não consigo mostrar a janela com sucesso. Eu também tenteiHWND = p.Handle
sem sucesso.
Existe uma maneira de fornecer um novo identificador para minha janela? Isso poderia potencialmente resolver meu problema.
Referências: