mit folgendem Code lässt sich ein definiertes Fenster schließen:
Option Explicit
Private Declare Function WaitForSingleObject Lib "kernel32" _
(ByVal hHandle As Long, _
ByVal dwMilliseconds 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 PostMessage Lib "user32" _
Alias "PostMessageA" _
(ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" _
(ByVal hWnd As Long, _
lpdwProcessId As Long) As Long
'Konstanten zum Schließen
Private Const WM_CLOSE = &H10
Private Const INFINITE = &HFFFFFFFF
Private Const SYNCHRONIZE = &H100000
Sub Schliessen()
Dim hWindow As Long
Dim hThread As Long
Dim hProcess As Long
Dim lProcessId As Long
Dim lngResult As Long
Dim lngReturnValue As Long
hWindow = FindWindow(vbNullString, "Test")
hThread = GetWindowThreadProcessId(hWindow, lProcessId)
lngReturnValue = PostMessage(hWindow, WM_CLOSE, 0&, 0&)
lngResult = WaitForSingleObject(hProcess, INFINITE)
DoEvents
End Sub
Wie müssten die Variablen belegt werden, damit das Fenster nicht geschlossen sondern nur in die Taskleiste minimiert wird? Oder sähe der Code dafür vollkommen anders aus?