ich hab von Excel aus automatisch eine mail generiert und die verschickt.
Nun kann es aber sein das die mail gar nicht zu verschicken geht.
Es kommt ein Fehlerfenster von Outlook. Und nun meine Frage wie kann ich dieses Fenster automtisch erfassen und schließen?
Ich hab im Netz ein Beispiel gefunden für IE-Fenster schließen
der Code geht aber schon bei Zeile
CurHWnd = GetWindow(hwnd, GW_HWNDFIRST)
nicht.
CurHwnd bleibt immer 0 obwohl andere Windowsfenster offen sind.
Was ist falsch dran geht das vba technisch aus excel überhaupt so?
Option Explicit
' zunächst die benötigten API-Deklarationen
Private Declare Function GetWindow Lib "user32" _
(ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetClassName Lib "user32" _
Alias "GetClassNameA" (ByVal hwnd As Long, _
ByVal lpClassName As String, ByVal nMaxCount As Long) _
As Long
Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Const WM_SYSCOMMAND = &H112
Const SC_CLOSE = &HF060
Const LNULL = 0&
Const GW_HWNDFIRST = 0
Const GW_HWNDNEXT = 2
Beim Klick auf die Schaltfläche sollen alle IE-Fenster geschlossen werden:
Private Sub Command1_Click()
' alle offenen IE-Fenster schließen
Dim lRetVal As Long
Dim sClassName As String
Dim CurHWnd As Long
CurHWnd = GetWindow(hwnd, GW_HWNDFIRST)
Do While CurHWnd not 0
' Klassennamen ermitteln
sClassName = String$(256, " ")
lRetVal = GetClassName(CurHWnd, sClassName, 255)
sClassName = Left$(sClassName, InStr(sClassName, _
Chr$(0)) - 1)
If sClassName = "IEFrame" Then
' Explorer-Fenster gefunden - jetzt schließen
lRetVal = SendMessage(CurHWnd, WM_SYSCOMMAND, _
SC_CLOSE, LNULL)
End If
' Handle des nächsten Fensters
' 0, wenn kein weiteres Fenster vorhanden
CurHWnd = GetWindow(CurHWnd, GW_HWNDNEXT)
Loop
End Sub
Danke schon mal Gruß Sylvio