erwartetes beenden eines programmes



  • ich suche eine möglichekeit um ein programm definiert zu beenden wenn man auf x drückt(oben rechts)

    normal kann man das ja zb mit 4ch programmieren(esc)

    aber wie geht das in diesem falle?



  • Ok. Leider ist deine Frage sehr ungenau formuliert. Daher habe ich aber zunaechst einige Fragen:
    1. Was willst du erreichen/wo genau liegt dein Problem?
    2. Wo ist die Verbindung zum Themengebiet "Assembler"?
    3. Fuer welches System/OS und mit welcher API programmierst du?
    4. Mit welcher Programmiersprache?



  • 1. Das Programm weißt einen Fehler auf und muss beendet werden... Das ist die Nachricht, wenn ich auf x drücke. Dies möchte ich aber vermeiden und somit das x als programmende definieren

    2.Die ist ja klar

    3.Win

    4.Assembler



  • ich erzähl mal, was ich neulich gemacht hab.
    ist aber c++ und konsole.
    ich will nen sehr rechenintensiven job laufen lassen und der soll die zwischenergebnisse vor dem abbruch (durch strg+c oder runterfahren) speichern.

    volatile int killed=0;
    
    static BOOL WINAPI win32SignalHandler(DWORD sig){
      switch(sig){
        case CTRL_C_EVENT:
        case CTRL_BREAK_EVENT:
        case CTRL_CLOSE_EVENT:
        case CTRL_LOGOFF_EVENT:
        case CTRL_SHUTDOWN_EVENT:
          killed=1;
          return TRUE;
      }
      return FALSE;
    }
    
    int createSigHandler(){
    	SetConsoleCtrlHandler(win32SignalHandler,TRUE);
    	return 0;
    }
    
    static int r=createSigHandler();
    

    und im prog muß ich immer mal wieder (nicht gerade in den innersten schleifen, sondern eher so, daß zur not auch mal 10 sek gewartet wird aufs programmendeerkennen)

    if(killed) return 1;
    

    oder sowas machen.

    machte nicht konsole, dann kriegste ne noemale message geschickt, daß dein prog beendet werden soll.



  • in wie fern hilft mir das nun?



  • Das kannst du wohl nur selbst beantworten.

    Nochmal ein paar kleine Tipps:
    1.Das Beispiel von volkard kann man auch problemlos in Assembler umsetzen.
    2.Je genauer deine Fragestellung und Problembeschreibung, desto hoeher ist die Wahrscheinlichkeit, wirklich hilfreiche Antworten zu bekommen. 😉


Anmelden zum Antworten