programm neustarten wenn beendet...



  • sooo 🙂
    ich hätte da noch ein anliegen..

    angenommen das programm wird durch benutzereingaben beendet...(X, Ctrl-C,...)

    kann ich das in einfacher weise gleich neustarten lassen?

    oder alternativ... das programm läuft als Windows Dienst... kann ich dem hier sagen "starte neu falls du beendet wurdest ?

    dankeee! 🙂



  • Dieser Thread wurde von Moderator/in volkard aus dem Forum C++ 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.



  • static wchar_t* appName = NULL;
    
    void restart()
    {
        ShellExecuteW(NULL, NULL, appName, NULL, NULL, SW_SHOW);
    );
    
    }
    
    int wmain(int argc, wchar_t* argv[])
    {
        appName = argv[0];
        atexit(restart);
    }
    

    Ungetestet, sollte aber funktionieren. 😉



  • der name der application ist also nötig? ok soll ja kein problem darstellen....

    atexit kann ja auch zwei funktionen aufnehmen richtig?
    gut.. dann werde ich das morgen mal testen.....

    übringens.. deein erstes zitat is echt pervers.. aber wohl wahr 🙂



  • @Icematix
    Das funktioniert allerdings nur, wenn das Programm normal beendet wird (also nicht durch Ctrl+C oder segfault).

    Am einfachsten ist ein externes Skript/Programm zu benutzen ( for(;;)system("deinprogramm.exe"); ).



  • und bem neustart gibts ne tolle could not read memeory fehlermeldung... (oder auch mal zwischendurch..)
    mmhhhhh 🙂

    gut ist es ja.. ausversehen das programm schließen geht nicht mehr... so wär das ja das richtige ^^ besser noch als dienst.. aber das ist mir grad(heute) zu kompliziert, oder?

    EDIT: "Application Error... ... The Mempory could not be read" passiert wohl erst wenn das Programm ne weile läuft (so nach 10sec ) ....



  • Frage mal anders: du erleidest einen Herzinfakt - das Programm deines Körpers verabschiedet sich - oder jemand streckt dich mit einem Messer nieder. Du selbst kannst dir in diesen Situationen nicht helfen. Wenn überhaupt, kann es Hilfe nur von aussen geben. 😉
    Du kannst aber folgendes machen: vor der endgültigen Verabschiedung des Programmes sendet dieses noch eine Nachricht an ein anderes Programm 'Hilfe, man will mich killen - ich will aber nicht'. Das andere Programm kann dann einen Neustart organisieren. :p



  • Wozu soll ein nichtbeendebares Programm gut sein? Schreibe einen Dienst, den kann nur der Administrator installieren, starten und beenden; genau wie es sein soll. Ansonsten kann ich mir keinen sinnvollen Grund vorstellen so etwas Programmieren zu wollen. Es sei denn es soll Malware werden. Dem Benutzer die Kontrolle über seinen Rechnern nehmen, ist eigentlich nie angebracht.



  • das programm soll einfach nicht ausversehen beendet werden können... da es ein tool ist mit dem wir festellen ob ein server nicht erreichbar ist oder datenbanken zu alt...

    aber.. bei einigen tests habe ich selbst festgestellt das es nervt (z.b. wenn man die config ändert oder was an der DB macht...)
    also so ein neustart, taugt nichts...

    dienst wäre eine möglichkeit, schau ich mir mal genauer an


Anmelden zum Antworten