funktion bevor fenster manuell geschlossen wird?



  • Ich hab ne Konsolenanwendung geschrieben.
    Diese muss unbedingt sauber geschlossen werden mit einer funktion,
    doch wenn jetzt jemand einfach auf das grosse rote X am fensterrand klickt bricht das ja alles ab und das Programm wird nicht sauber geschlossen

    wie kann ich also bevor der Prozess wirklich beendet wird noch eine letzte funktion aufrufen?

    ich hoffe es findet sich was, google und so wolltens mir nicht verraten 😞

    mfG killwithme



  • Sowas kannst du nie 100 %ig sicherstellen.

    Ein Prozess kann von außen so gut wie immer "gekillt" werden.



  • Hallo

    X am fensterrand klickt bricht das ja alles ab und das Programm wird nicht sauber geschlossen

    Doch, normalerweise schon. Was ist denn dein Problem? Vielleicht etwas Code? Kann mir nicht vorstellen, dass es eine extra Funktion benötigt. Es sei denn, du hast solche großen Speicherablagerungen im Arbietsspeicher (RAM), dass du ihn extra terminieren musst. Falls das der Fall seien sollte, reicht es wenn du das vor dem Programmende tust, dass wird dann automatisch nochmal aufgerufen.

    Mfg.
    way



  • killwithme schrieb:

    wie kann ich also bevor der Prozess wirklich beendet wird noch eine letzte funktion aufrufen?

    Kannst du nicht deinem EventListener, der auf das FensterSchließen-Event wartet, alle offenen Ressourcen schließen?



  • also genauergesagt sollte vor beenden des clients ein WSACleanup durchgeführt werden..damit der Server das korrekt erkennt
    vll versteht ihr das jetzt besser was ich meine :o



  • Dieser Thread wurde von Moderator/in Nobuo T aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hi,
    mit SetConsoleCtrlHandler geht das. Damit kannst du CTRL_C_EVENT, CTRL_BREAK_EVENT, CTRL_LOGOFF_EVENT, CTRL_CLOSE_EVENT, CTRL_SHUTDOWN_EVENT abfangen.
    Gruß,
    B.B.



  • Ohne WinApi sollte es auch mit atexit() gehen.



  • Nö, das fängt Strg+C nicht ab.


Log in to reply