Hallo,
ich verwende dieses Modul zum automatischen schliesen eines Dialogfensters.
Ersetzt praktisch einen Klick auf den "OK" Button
Jetzt bräuchte ich aber noch ein Modul welches ein Dialogfenster schliest
mit dem Button "Beenden". hab schon einiges probiert, klappt aber nicht.
ein ersetzten von:
Private Const BUTTON_CAPTION = "OK" durch
Private Const BUTTON_CAPTION = "Beenden" bringt auch nichts.
Hat es vlt. etwas hiermit zu tun "#32770"? Hat jeder Button eine spezielle Zahl?
Private Const GC_CLASSNAMEDIALOG = "#32770"
Danke und Grüße
Option Explicit
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 hWnd1 As Long, _
ByVal hWnd2 As Long, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Private Const BM_CLICK = &HF5
Private Const GC_CLASSNAMEDIALOG = "#32770"
Private Const GC_CLASSNAMEBUTTON = "Button"
Private Const DIALOG_CAPTION = "Microsoft Office Excel"
Private Const BUTTON_CAPTION = "OK"
Public dtmNextTime As Date
Public Sub StartTimer()
Dim lngDialogHwnd As Long, lngButtonHwnd As Long
lngDialogHwnd = FindWindow(GC_CLASSNAMEDIALOG, DIALOG_CAPTION)
If CBool(lngDialogHwnd) Then
lngButtonHwnd = FindWindowEx(lngDialogHwnd, ByVal 0&, GC_CLASSNAMEBUTTON, BUTTON_CAPTION)
If CBool(lngButtonHwnd) Then
Call SendMessage(lngButtonHwnd, BM_CLICK, 0&, 0&)
Call SendMessage(lngButtonHwnd, BM_CLICK, 0&, 0&)
End If
End If
dtmNextTime = Now + TimeSerial(0, 0, 10)
Application.OnTime dtmNextTime, "StartTimer"
End Sub
|