找到并最小化或最大化或恢复一个窗口

介绍 GetWindowPlacement、SetWindowPlacement和FindWindow:使用这些API函数,我们可以最小化、最大化或恢复窗口。 使用的函数 GetWindowPlacement函数检索指定窗口的显示状态以及已恢复的、最小化的和最大化的位置。 隐藏,复制CodeGetWindowPlacement (ByVal hwnd为整数,ByRef lpwndpl为WINDOWPLACEMENT)为整数 SetWindowPlacement函数设置指定窗口的显示状态以及已恢复的、最小化的和最大化的位置。 隐藏,复制CodeSetWindowPlacement (ByVal hwnd为整数,ByRef lpwndpl为WINDOWPLACEMENT)为整数 函数检索顶级窗口的句柄,该顶级窗口的类名和窗口名与指定的字符串匹配。此函数不搜索子窗口。此函数不执行区分大小写的搜索。 隐藏,复制CodeFindWindow(字符串lpClassName,字符串lpWindowName) 使用 隐藏,收缩,复制Code

Public Class Minimize

    Private Declare Function FindWindow Lib "user32" Alias _
            "FindWindowA" (ByVal lpClassName As String, _
            ByVal lpWindowName As String) As Integer
    Private Declare Function GetWindowPlacement Lib _
            "user32" (ByVal hwnd As Integer, _
            ByRef lpwndpl As WINDOWPLACEMENT) As Integer
    Private Declare Function SetWindowPlacement Lib "user32" _
           (ByVal hwnd As Integer, ByRef lpwndpl As WINDOWPLACEMENT) As Integer
    Private Const SW_SHOWMINIMIZED As Short = 2
    Private Const SW_SHOWMAXIMIZED As Short = 3
    Private Const SW_SHOWNORMAL As Short = 1

    Private Structure POINTAPI
        Dim X As Integer
        Dim Y As Integer
    End Structure

    Private Structure RECT
        Dim Left_Renamed As Integer
        Dim Top_Renamed As Integer
        Dim Right_Renamed As Integer
        Dim Bottom_Renamed As Integer
    End Structure

    Private Structure WINDOWPLACEMENT
        Dim length As Integer
        Dim flags As Integer
        Dim showCmd As Integer
        Dim ptMinPosition As POINTAPI
        Dim ptMaxPosition As POINTAPI
        Dim rcNormalPosition As RECT
    End Structure

   
    Public Sub windowAction(ByVal classname As String, ByVal action As String)

        Dim app_hwnd As Integer
        Dim wp As WINDOWPLACEMENT
        app_hwnd = FindWindow(classname, vbNullString)
        wp.length = Len(wp)
        GetWindowPlacement(app_hwnd, wp)

        Select Case action

            Case "Minimize"
                 wp.showCmd = SW_SHOWMINIMIZED
            Case "Maximize"

                 wp.showCmd = SW_SHOWMAXIMIZED

            Case "Restore"
                wp.showCmd = SW_SHOWNORMAL
        End Select
        SetWindowPlacement(app_hwnd, wp)

    End Sub
End Class
'Use this Class
'This is sample for Minimize the notepad window

Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click
    Dim test As New Minimize
    test.windowAction("Notepad", "Minimize")
End Sub

本文转载于:http://www.diyabc.com/frontweb/news10852.html

posted @ 2020-08-11 02:11  Dincat  阅读(543)  评论(0编辑  收藏  举报