Abfangen des Fenster Schliessen Knopfes X
-
Hallo Leute super Forum.
Suche eine Möglichkeit bei meiner DOS BoX Anwendung.
Den Schliessen Button X abzufangen, um einen Eintrag Benutzerabbruch in mein Logfile zu schreiben.Kennt da jemand was.
-
Ich weiß nur, dass es relativ kompliziert ist. Evtl. könnte man dir noch im WinAPI-Forum weiterhelfen. Vielleicht gibts ja eine Funktion bei der man das Event des Fensterschließens abfangen kann. (In VB gibts übrigens standardmäßig schon so ein Ereignis, wenn es jemanden interesiert.)
MasterGandi schrieb:
DOS BoX Anwendung.
Ich vermute du meinst damit ein Win32 Konsolenprogramm. Eine DOS-Anwendung ist ein wenig was anderes. Konsultiere dazu auch mal die Konsolen-FAQ.
-
Dieser Thread wurde von Moderator/in AJ aus dem Forum DOS und Win32-Konsole in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hallo,
setze einfach einen Handler auf das Schließen-Ereignis mit SetConsoleCtrlHandler an:
http://msdn.microsoft.com/library/en-us/dllproc/base/setconsolectrlhandler.asp
MfG
-
Bei der oben genannten Methode fehlt mir aber die Möglichkeit
an den Eventhandler noch ein paar Variablen zu übergeben.Müsste da nämlich noch einen FILE Pointer auf mein Logfile mitgeben ???
Kennt da jemand ein Workaround.
Danke nochmals für die prompte Hilfe.
-
ein allgemeiner Lösungsvorschlag der nicht so von der API abhängig ist
:
schreib doch zuerst (beim programmstart) in dein Logfile: Userabbruch blabla und lass die "normale" Beenderoutine es wieder wegmachen - somit wenn der User dein Programm abbricht/mit dem Taskmanager abschießt bleibt im Logfile "Userabbruch" stehen.
Nochmal zur verdeutlichung:
Programmstart=>Logfile öffnen/anlegen=>reischreiben:"Userabbruch"
bei regulärem Programmende:Logfileöffnen,den eintrag löschen
-
Ein vorzeitiges Reinschreiben der Fehlermeldung ist leider nicht möglich,
da es sich nicht nur um eine Fehlermeldung handelt.Müsste schon bei auslösen des Events reinschreiben können.
Noch jemand eine Idee.
-
Speicher die erforderlichen Infos doch einfach in einer globalen Variable, die du dann in HandlerRoutine abfragst
