FORM-CODE
Private Declare Function BringWindowToTop Lib "user32" _
(ByVal hwnd As Long) As Long
Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function GetWindowPlacement Lib "user32" _
(ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function SetForegroundWindow Lib "user32" _
(ByVal hwnd As Long) As Long
Private Declare Function SetWindowPlacement Lib "user32" _
(ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type POINTAPI
x As Long
y As Long
End Type
Private Type WINDOWPLACEMENT
Length As Long
flags As Long
showCmd As Long
ptMinPosition As POINTAPI
ptMaxPosition As POINTAPI
rcNormalPosition As RECT
End Type
Private Const SW_SHOWNORMAL = 1
Private Const SW_SHOWMINIMIZED = 2
Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_SHOWNOACTIVATE = 4
Public Sub RestoreWindow(sWindowTitle As String)
Dim wHandle As Long
Dim currWinP As WINDOWPLACEMENT
wHandle = FindWindow(vbNullString, sWindowTitle)
If wHandle Then
currWinP.Length = Len(currWinP)
If GetWindowPlacement(wHandle, currWinP) > 0 Then
If currWinP.showCmd = SW_SHOWMINIMIZED Then
currWinP.Length = Len(currWinP)
currWinP.flags = 0&
currWinP.showCmd = SW_SHOWNORMAL
Call SetWindowPlacement(wHandle, currWinP)
Else
Call SetForegroundWindow(wHandle)
Call BringWindowToTop(wHandle)
End If
End If
End If
End Sub
Private Sub Command1_Click()
RestoreWindow ("Rechner")
End Sub