скрыть / показать окно программы - PullRequest
0 голосов
/ 30 апреля 2011

Я использую Visual Basic 2008

например, у меня работает notepad.exe, могу ли я скрыть окно блокнота, а затем, если мне нужно, чтобы показать его снова?

спасибо.

1 Ответ

5 голосов
/ 30 апреля 2011
  • Вызов Process.GetProcessesByName() передача "notepad".
  • Затем прочитайте MainWindowHandle из возвращенного процесса.
  • P/ Invoke ShowWindow() прохождение SW_HIDE или SW_SHOW, чтобы скрыть / показать окно.

P / Invoke подпись :

<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function ShowWindow(ByVal hwnd As IntPtr, ByVal nCmdShow As Integer) As Boolean
End Function

В теме ShowWindow() перечислены числовые значения для флагов SW_*.


Спасибо @Alex K за предложение использования в качестве комментарияShowWindowAsync() вместо ShowWindow().

<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function ShowWindowAsync(ByVal hwnd As IntPtr, ByVal nCmdShow As Integer) As Boolean
End Function

Из документации:

Эта функция отправляет событие show-window в очередь сообщений данного окна.Приложение может использовать эту функцию, чтобы не отвечать на запросы, ожидая, пока не отвечающее приложение завершит обработку события витрины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...