Windows XP Tablet 版嵌入式Windows VistaWindows 2003Windows 2000Windows XPWindows Forms中级开发Windows.NETVisual Basic
查找并最小化、最大化或还原窗口






2.71/5 (3投票s)
查找并最小化、最大化或还原窗口。
引言
GetWindowPlacement
、SetWindowPlacement
和 FindWindow
:使用这些 API 函数,我们可以最小化、最大化或还原窗口。
使用这些函数
GetWindowPlacement
GetWindowPlacement
函数检索指定窗口的显示状态以及还原、最小化和最大化位置。
GetWindowPlacement (ByVal hwnd As Integer, ByRef lpwndpl As WINDOWPLACEMENT) As Integer
SetWindowPlacement
SetWindowPlacement
函数设置指定窗口的显示状态以及还原、最小化和最大化位置。
SetWindowPlacement (ByVal hwnd As Integer, ByRef lpwndpl As WINDOWPLACEMENT) As Integer
FindWindow
FindWindow
函数检索一个句柄,指向类名和窗口名称与指定字符串匹配的顶级窗口。此函数不搜索子窗口。此函数不执行区分大小写的搜索。
FindWindow(string lpClassName,string lpWindowName)
用法
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