Signal beim Beenden ?



  • Nochmal Moin,

    habe noch eine Frage, zu der vieleicht hier jemand eine Antwort hat (hoffentlich).
    Mit 'SetConsoleCtrlHandler(..)' kann eine Callbackfunktion zum abfangen verschiedener Aktionen wie zum Beispiel terminieren mit ctrl-c oder dem Kreuz in der Titelleiste abgefangen werden. Funzt auch alles wunderbar. Bis jetzt habe ich leider keine Möglichkeit gefunden, wie ich das Beenden mit Hilfe des Window-Task-managers abfangen kann, um nötigen Aktionen beim runterfahren des Programs auch in diesem Fall zu veranlassen. Hoffe sehr, dass jemand im Forum einen Tip für mich hat.
    Danke, arni



  • Als Konsolenanwendung tust du dir da sehr schwer. Als Fenster bekommst du zumindest eine Nachricht für den normalen Shutdown.

    MfG SideWinder



  • recht hast du, schwer tue ich mich da schon, habe schon erwogen, einen 'winmain()-Wrapper' drumherum zu bauen, der die main() von der Konsole aufruft, dann hätte ich ein Fenster und Messages zur Verfügung. Du hast in einem Beitrag so etwas mal beschrieben:
    [url]
    http://c-plusplus.net/forum/viewtopic.php?t=76883&highlight=showwindow
    [/url]
    Wäre doch eine Möglichkeit, oder? Dann gäbe es auch eine möglichkeit auf einen Click auf das Icon in der tray-bar zu reagieren.

    Wenn ich die msdn richtig interpretiere, sollte das Schließen über den Taskmanager auch ein Signal ergeben. Gibts aber nur, wenn man das auf der Registerkarte 'Anwendungen' macht, wenn man über die Registerkarte 'Prozesse' beendet, gibts anscheinend gar nix.
    [msdn]
    CTRL_CLOSE_EVENT
    A signal that the system sends to all processes attached to a console when the user closes the console (either by clicking Close on the console window's window menu, or by clicking the End Task button command from Task Manager).
    [/msdn]

    Vieleicht doch noch eine Idee irgendwo 'out there'?
    Danke, Arni


Anmelden zum Antworten