Функция ShowWindowAsync

Declare Function ShowWindowAsync Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

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

Возвращаемое значение

Функция возвращает 0, если окно было раньше скрыто. Если окно было видимым, то возвращается ненулевое значение

Параметры

hwnd
Дескриптор окна
nCmdShow
Флаги функции, определяющие вид окна. Возможные значения смотрите в функции ShowWindow

Пример

' Пример для VB .NET 2003
' Запрет на запуск второй копии программы

    Public Enum ShowWindowConstants
        SW_HIDE = 0
        SW_SHOWNORMAL = 1
        SW_NORMAL = 1
        SW_SHOWMINIMIZED = 2
        SW_SHOWMAXIMIZED = 3
        SW_MAXIMIZE = 3
        SW_SHOWNOACTIVATE = 4
        SW_SHOW = 5
        SW_MINIMIZE = 6
        SW_SHOWMINNOACTIVE = 7
        SW_SHOWNA = 8
        SW_RESTORE = 9
        SW_SHOWDEFAULT = 10
        SW_FORCEMINIMIZE = 11
        SW_MAX = 11
    End Enum
' Расположите код в процедуре Main
   Public Shared Sub Main()
        Dim RunningProcesses As Process() = Process.GetProcessesByName("WindowsApplication3")

        If (RunningProcesses.Length = 1) Then
            Application.Run(New Form1)
        Else
            ShowWindowAsync(RunningProcesses(0).MainWindowHandle, ShowWindowConstants.SW_SHOWMINIMIZED)
            ShowWindowAsync(RunningProcesses(0).MainWindowHandle, ShowWindowConstants.SW_RESTORE)
        End If
    End Sub

Смотри также

ShowWindow

Категория

Окна