title image


Smiley Re: so gehts
Du kannst einen API-Timer starten und dann im Timer-Event die Msgbox suchen und den WindowText der Buttons ändern.Ein VB-Timer funktioniert hier nicht weil das VB-Timerevent von der MsgBox blockiert wird, die API-Timerfunktion hingegen wird aufgerufen.Aufruf der MsgboxPrivate Sub Command1_Click()   StartTimer 1   MsgBox "Ja Nein Abbrechen", vbYesNoCancel, "MsgBox"End SubWegen dem Callback beim Timer muß das in ein ModulOption ExplicitPrivate Const GW_CHILD = 5Private Const GW_HWNDNEXT = 2Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As LongPrivate Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As LongPrivate Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As LongPrivate Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As LongPrivate Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As LongPrivate Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As LongPrivate Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As LongPrivate MtmrID As LongPublic Sub StartTimer(ByVal intMilliSeconds As Integer)   MtmrID = SetTimer(0, 0, intMilliSeconds, AddressOf CallBackTimerProc)End SubPublic Sub StopTimer()   If MtmrID  0 Then      KillTimer 0, MtmrID   End IfEnd SubPublic Sub CallBackTimerProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)Dim hwndDialog As LongDim hwndButton As Long   StopTimer   hwndDialog = FindWindow("#32770", "MsgBox")  '//    If hwndDialog > 0 Then      hwndButton = GetWindow(hwndDialog, GW_CHILD)      Do While hwndButton > 0         If ClassName(hwndButton) = "Button" Then            Select Case WindowText(hwndButton)               Case "&Ja"                  SetWindowText hwndButton, "super"               Case "&Nein"                  SetWindowText hwndButton, "nee du"               Case "Abbrechen"                  SetWindowText hwndButton, "vielleicht"            End Select         End If         hwndButton = GetWindow(hwndButton, GW_HWNDNEXT)      Loop   End IfEnd SubPrivate Function ClassName(ByVal hwndWindow) As StringDim lngLen As LongDim strText As String   strText = Space(256)   lngLen = GetClassName(hwndWindow, strText, Len(strText))   ClassName = Left$(strText, lngLen)End FunctionPrivate Function WindowText(ByVal hwndWindow As Long) As StringDim strText As StringDim lngLen As Long   strText = Space(GetWindowTextLength(hwndWindow) + 1)   lngLen = GetWindowText(hwndWindow, strText, Len(strText))   WindowText = Left$(strText, lngLen)End Function


Gruß
Gaga

___________________________________________________________________

Profilösungen für VB6
wenn nicht anders angegeben, sind alle Codebeispiele nicht getestet, nur getippt


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: