Hallo zusammen,
da ich leider zu oben genanntem Problem keine Lösung soweit gefunden habe, habe ich mich dazu entschieden das ganz anders zu gestallten.
Ich hoffe das man mir zu meinem neuen Lösungsweg behilflich sein kann.
Ich möchte die Warnmeldung im Hintergrund verschwinden lassen(kein Problem, ist realisiert)
Nun möchte ich das der Button "Ja" der Warnmeldung nach Ablauf der Wartezeit automatisch gedrückt wird(gelingt mir nicht wirklich) oder wenn es mal funktioniert, dann kommt es auch mal vor das die Mail dennoch nicht erstellt wurde, bzw. Outlook sich verhaspelt.
Sende mal meinen Code mit und hoffe das jemand eine Lösung hat die besser und stabieler läuft.
Private Sub SomeProc()
Dim wnd&, Aimwindow&, wnd_chld As Long
Dim uClickYes As Long
Dim Res As Long
Dim wasenabled As Long
Dim a As String, j As Long
DoEvents
' is there dialog box appear yet !
Let wnd = FindWindow(vbNullString, "Microsoft Outlook")
If (wnd = 0) Then Exit Sub
ShowWindow wnd, SW_HIDE
Let wnd_chld = GetWindow(wnd, GW_CHILD)
If (wnd_chld = 0) Then Exit Sub
' is dialog box enable yet
wasenabled = IsWindowEnabled(wnd_chld)
If wasenabled = 0 Then Exit Sub
Do While wnd_chld
DoEvents
a = Space$(128)
' get child box
j = SendMessage(wnd_chld, WM_GETTEXT, 100, _
ByVal a)
If (Len(Trim(a)) <> 0) Then
a = Left(a, InStr(a, Chr$(0)) - 1)
If (UCase(a) = "JA") Then
' is button YES enable yet
wasenabled = IsWindowEnabled(wnd_chld)
If wasenabled <> 0 Then
' Beep
'SefocusAPI wnd_chld
' keybd_event VK_TAB, 0, 0, 0
' keybd_event VK_TAB, 0,
' KEYEVENTF_KEYUP, 0
'keybd_event VK_TAB, 0, 0, 0
'keybd_event VK_TAB, 0,
' KEYEVENTF_KEYUP, 0
'das Event muss gemacht werden,da
' PostMessage,SendMessageLong bzw.
' SendMessage erst garnicht
' funktioniert.
keybd_event VK_ENTER, 0, 0, 0
keybd_event VK_ENTER, 0, _
KEYEVENTF_KEYUP, 0
Call PostMessage(wnd_chld, _
WM_LBUTTONDOWN, 0&, 0&)
Call PostMessage(wnd_chld, _
WM_LBUTTONUP, 0&, 0&)
' SendMessageLong wnd_chld,
' WM_LBUTTONDOWN, 0&, 0&
' SendMessageLong wnd_chld,
' WM_LBUTTONUP, 0&, 0&
' SendMessage wnd_chld,
' WM_LBUTTONDOWN, 0&, 0&
' SendMessage wnd_chld,
' WM_LBUTTONUP, 0&, 0&
End
End If
End If
End If
DoEvents
wnd_chld = GetWindow(wnd_chld, GW_HWNDNEXT)
Loop
End Sub
Private Sub Form_Load()
Me.Hide
End Sub
Private Sub Timer1_Timer()
Timer1.Enabled = False
DoEvents
SomeProc
Timer1.Enabled = True
End Sub |