Jak ukryć / odkryć proces w C #?
Próbuję uruchomić zewnętrzny proces w aplikacji Visual C # 2010 - Windows Forms. Celem jest rozpoczęcie procesu jako ukrytego okna i odkrycie okna w późniejszym czasie.
Zaktualizowałem moje postępy:
<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>
W mojej głównej funkcji umieszczono następujące:
<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>
Ponieważ jednak okno zostało uruchomione jako „ukryte”p.MainWindowHandle = 0
. Nie mogę pomyślnie wyświetlić okna. Próbowałem teżHWND = p.Handle
bez powodzenia.
Czy istnieje sposób na dodanie nowego uchwytu do mojego okna? Może to potencjalnie rozwiązać mój problem.
Referencje: