Hallo Dirk,
ich habe dir da mal eben etwas zusammen geschrieben (ungetestet!). Jedenfalls löseich das so oder so ähnlich...
Code:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongSub FindWindowAndClose(ByVal Title as String)
Dim hWndTmp1 As Long
Dim hWndTmp2 As Long
Dim i As Integer
On Error Resume Next
i = 0
'Find the Window
Do
hWndTmp1 = FindWindow(vbNullString, Title)
If hWndTmp1 <> 0 Then
'close Window however it could be closed
End If
Application.DoEvents()
Wait (100)
i = i + 1
'exit sub after 10 Seconds
If i = 100 then exit Sub
Loop Until hWndTmp1 <> 0
'waiting until the window is closed
Do
hWndTmp1 = FindWindow(vbNullString, Title)
Application.DoEvents()
Wait (100)
Loop Until hWndTmp1 = 0
End Sub
Public Sub Wait(ByVal i as Integer)
Dim StartTime As Date = Now
Do Until (Now - StartTime).Milliseconds > i
Application.DoEvents()
Loop
End Sub
Klar muss hier verfeinert werden und ich würde eher mit einem Timer arbeiten, der einmalig durchläuft, aber lösbar sollte dein Problem sein, solange du an das Fenster heran kommst bzw. es identifizieren kannst.
HTH
/Edit: Habe etwas vergessen und natürlich nicht bedacht, dass du dich im .Net aufhälst. siehe "Application.DoEvents()"
------------------
MFG
Rick Schulz
Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities
[Diese Nachricht wurde von RSchulz am 18. Okt. 2013 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP