Using the API function
GetWindowPlacement,SetWindowPlacement and FindWindow. Using these API function, we can minimize or maximize or restore the window.
GetWindowPlacement
The GetWindowPlacement function retrieves the show state and the restored, minimized, and maximized positions of the specified window.
GetWindowPlacement (ByVal hwnd As Integer, ByRef lpwndpl As WINDOWPLACEMENT) As Integer
SetWindowPlacement
The SetWindowPlacement function sets the show state and the restored, minimized, and maximized positions of the specified window.
SetWindowPlacement (ByVal hwnd As Integer, ByRef lpwndpl As WINDOWPLACEMENT) As Integer
FindWindow
The FindWindow function retrieves a handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows. This function does not perform a case-sensitive search.
FindWindow(string lpClassName,string lpWindowName)
Sample code for minimize the notepad
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"
'For Minimize
wp.showCmd = SW_SHOWMINIMIZED
Case "Maximize"
'For Maximize.
wp.showCmd = SW_SHOWMAXIMIZED
Case "Restore"
'For Restore
wp.showCmd = SW_SHOWNORMAL
End Select
SetWindowPlacement(app_hwnd, wp)
End Sub
End Class