Как сделать окно, не связанное с приложением, минимизировать или максимизировать его состояние окна в VB? - PullRequest
3 голосов
/ 13 декабря 2011

Если вы когда-либо замечали в диспетчере задач, когда вы щелкаете правой кнопкой мыши по запущенной задаче, у вас есть много опций, включая «Свернуть» и «Свернуть».Есть ли способ сделать это в VB?

1 Ответ

3 голосов
/ 13 декабря 2011

Вот пример кода, который вы ищете.Он будет перебирать все активные процессы и сворачивать все окна.

В вашем приложении вы, вероятно, захотите использовать что-то вроде Process.GetProcessesByName, чтобы найти конкретное окно, которым вы хотите манипулировать.

Imports System.Runtime.InteropServices

Module ManipulateWindows

    Const SW_HIDE As Integer = 0
    Const SW_RESTORE As Integer = 1
    Const SW_MINIMIZE As Integer = 2
    Const SW_MAXIMIZE As Integer = 3

    <DllImport("User32")> _
    Private Function ShowWindow(ByVal hwnd As Integer, ByVal nCmdShow As Integer) As Integer
    End Function

    Public Sub Main()

        'iterate through all the open processes.
        For Each p As Process In Process.GetProcesses    

            'Get the Window Handle
            Dim hWnd as integer = CType(p.MainWindowHandle, Integer)

            'Write out the title of the main window for the process.
            System.Console.WriteLine(p.MainWindowTitle)

            'Minimize the Window
            ShowWindow(hWnd, SW_MINIMIZE)
        Next p    
    End Sub    
End Module
...