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

Maximize the notepad

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", "Maximize")

End Sub

Restore the notepad

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", "Restore")
End Sub

Minimize the notepad

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