Как скрыть/показать процесс в C#? ⇐ C#
-
Anonymous
Как скрыть/показать процесс в C#?
Я пытаюсь запустить внешний процесс в приложении Visual C# 2010 — Windows Forms. Цель состоит в том, чтобы запустить процесс как скрытое окно и отобразить его позже.
Я обновил свой прогресс:
//Инициализация [DllImport("user32.dll")] частный статический extern bool ShowWindow (IntPtr hwnd, int nCmdShow); [DllImport("user32.dll")] частный статический extern bool EnableWindow (IntPtr hwnd, bool Enable); [DllImport("user32.dll")] Private static extern bool MoveWindow (дескриптор IntPtr, int x, int y, int width, высота int, перерисовка bool); SW_SHOW = 5; В мою основную функцию было помещено следующее:
Информация ProcessStartInfo = новый ProcessStartInfo("process.exe"); info.WindowStyle = ProcessWindowStyle.Hidden; Процесс p = Process.Start(информация); p.WaitForInputIdle(); IntPtr HWND = p.MainWindowHandle; System.Threading.Thread.Sleep(1000); ПоказатьОкно(HWND, SW_SHOW); EnableWindow (HWND, правда); MoveWindow(HWND, 0, 0, 640, 480, правда); Однако, поскольку окно было запущено как «скрытое», p.MainWindowHandle = 0. Я не могу успешно показать окно. Я также пробовал HWND = p.Handle, но безуспешно.
Есть ли способ предоставить новый дескриптор моему окну? Это потенциально может решить мою проблему.
Ссылки:
Окно MSDN
Форумы MSDN
Как импортировать .dll
Я пытаюсь запустить внешний процесс в приложении Visual C# 2010 — Windows Forms. Цель состоит в том, чтобы запустить процесс как скрытое окно и отобразить его позже.
Я обновил свой прогресс:
//Инициализация [DllImport("user32.dll")] частный статический extern bool ShowWindow (IntPtr hwnd, int nCmdShow); [DllImport("user32.dll")] частный статический extern bool EnableWindow (IntPtr hwnd, bool Enable); [DllImport("user32.dll")] Private static extern bool MoveWindow (дескриптор IntPtr, int x, int y, int width, высота int, перерисовка bool); SW_SHOW = 5; В мою основную функцию было помещено следующее:
Информация ProcessStartInfo = новый ProcessStartInfo("process.exe"); info.WindowStyle = ProcessWindowStyle.Hidden; Процесс p = Process.Start(информация); p.WaitForInputIdle(); IntPtr HWND = p.MainWindowHandle; System.Threading.Thread.Sleep(1000); ПоказатьОкно(HWND, SW_SHOW); EnableWindow (HWND, правда); MoveWindow(HWND, 0, 0, 640, 480, правда); Однако, поскольку окно было запущено как «скрытое», p.MainWindowHandle = 0. Я не могу успешно показать окно. Я также пробовал HWND = p.Handle, но безуспешно.
Есть ли способ предоставить новый дескриптор моему окну? Это потенциально может решить мою проблему.
Ссылки:
Окно MSDN
Форумы MSDN
Как импортировать .dll
Мобильная версия