Thema Datum  Von Nutzer Rating
Antwort
Rot Dialog automatisch beenden
12.07.2024 13:56:19 Bernd
Solved
12.07.2024 16:02:38 volti
NotSolved
12.07.2024 16:54:10 Gast69258
NotSolved
12.07.2024 16:56:25 Gast73372
NotSolved
22.07.2024 17:16:17 volti
NotSolved

Ansicht des Beitrags:
Von:
Bernd
Datum:
12.07.2024 13:56:19
Views:
470
Rating: Antwort:
 Nein
Thema:
Dialog automatisch beenden

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

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Dialog automatisch beenden
12.07.2024 13:56:19 Bernd
Solved
12.07.2024 16:02:38 volti
NotSolved
12.07.2024 16:54:10 Gast69258
NotSolved
12.07.2024 16:56:25 Gast73372
NotSolved
22.07.2024 17:16:17 volti
NotSolved