Rubrik: System/Windows · Prozesse/Tasks | VB-Versionen: VB4, VB5, VB6 | 15.04.04 |
Fehler beim Beenden der eigenen Anwendung Vergewissern Sie sich, dass Ihre HTML-Hilfe - falls vom Anwender aufgerufen - beim Beenden der Anwendung ebenfalls korrekt beendet wird! | ||
Autor: Dieter Otter | Bewertung: | Views: 15.686 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Haben Sie sich auch schon einmal darüber gewundert, dass beim Beenden Ihrer Anwendung hin und wieder eine Fehlermeldung ausgeworfen wird?
"Diese Anwendung wird aufgrund eines ungültigen Vorgangs geschlossen"
Komisch - oder? Das Kuriose ist jedoch, dass die Fehlermeldung nur beim Beenden der Anwendung angezeigt wird - aber auch nicht immer!
Kann es sein, dass Sie zu Ihrer Anwendung eine moderne HTML-Onlinehilfe erstellt haben?
Und kann es auch sein, dass die Fehlermeldung immer nur dann angezeigt wird, wenn die HTML-Hilfe beim Beenden der Anwendung noch geöffnet ist?
Wenn ja, dann haben wir die Lösung!
Beim Beenden der eigenen Anwendung, prüfen wir einfach, ob die Anwendungshilfe noch geöffnet ist. Wenn ja, schließen wir diese und erst dann beenden wir die Anwendung.
Fügen Sie nachfolgenden Code in ein Modul.
Option Explicit ' Benötigte API-Deklarationen Private Declare Function FindWindow Lib "user32" _ Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) 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 Private Const WM_CLOSE = &H10
' Anwendung korrekt beenden Public Sub ExitApp() ' Fenster der HTML-Hilfe ermitteln (hierzu muss der ' EXAKTE FENSTERTITEL bekannt sein!) Dim nHWnd As Long nHWnd = FindWindow(vbNullString, "Exakter Fenstertitel der HTMLHilfe") If nHWnd <> 0 Then ' Fenster schließen SendMessage nHWnd, WM_CLOSE, 0&, 0& End If DoEvents ' Anwendung beenden Dim oForm As Form For Each oForm In VB.Forms Unload oForm Next End Sub