Probleme mit FindwindowEx
30.11.2018 16:47:40
Theo
irgendwie bringt mich das automatisieren von Nicht-Office Anwendungen noch an den Rande des Wahnsinns. Ich nutze folgendes Macro um auf einem externen Fenster den "No" Knopf zu drücken:
Private Declare Function FindWindow Lib "user32.dll" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32.dll" _
Alias "FindWindowExA" ( _
ByVal hWndParent As Long, _
ByVal hwndChildAfter As Long, _
ByVal lpszClass As String, _
ByVal lpszWindow As String) As Long
Sub CloseAutoLogoutMessages()
Dim hWnd As Long
Dim hbnd As Long
Dim blWindow As Boolean
blWindow = False
Do
hWnd = GetWindowHandle("SAP GUI for")
If hWnd > 0 Then
blWindow = True
BringWindowToTop (hWnd)
hbnd = FindWindowEx(hWnd, 0, "Button", "&No")
If hbnd > 0 Then
SendMessage hbnd, BM_CLICK, 0, 0
End If
End If
Loop While hWnd > 0
If blWindow Then
Application.Wait Now + TimeSerial(0, 0, 3)
End If
End Sub
Das Fensterhandle hWnd wird korrekt gefunden (deswegen habe ich Euch auch die Funktion GetWindowhandle erspart) - lediglich das FindWindowEx liefert 0 zurück. WinSpy++ liefert für den "No"-Button folgende Werte:Was mache ich falsch?
Vielen Dank im Voraus an dieses tolle Forum!
Theo