Programm automatisch ausführen nach Programmabsturz



  • Hi,

    ich bin leider erst im ersten Informatiksemester. Aber ich suche schon die ganze Zeit nach einem Programm das automatisch wieder das Programm startet, falls es abgestürzt ist. Da ich nichts in google gefunden habe wollte ich mich selber drann machen ein ganz simples Schleifenprogramm zu schreiben.

    Mit einer Konsolenanwendung hab ich mit der funktion "system(dateiname)" probiert das programm zu öffnen, startet auch, aber wenn es schon offen ist bekomme ich eine Meldung von dem Programm das es schon geöffnet ist und meine Konsolenanwendung macht solange nicht wie das Fenster offen ist.

    Ich müsste ein Programm schreibe das erkennt falls das Programm nicht mehr geöffnet ist und es dann startet.

    Leider haben wir noch keine objektorientierte Programmierung durchgenommen und komme mit der Funktion "ShellExecute" auch nicht zurecht. Aber diese Funktion ruft ja auch nur ein Programm auf und fragt nicht vorher ab ob es schon geöffnet ist.

    Kann mir vielleicht jemand ein kleines Programm schreiben, was ich dann passend zur Datei abändern kann? 🙄

    Es muss immer kontrolliert werden ob die datei "D:\Programme\Symantec\pcAnywhere\awhost32.exe"
    Anzeigename: "Symantec pcAnywhere Host Service"

    Vielen Dank.

    MFG,
    Cyrill



  • Hallo,

    Für sowas wäre ShellExecuteEx oder auch CreateProcess geeignet (zumindest unter Windows). Bei beiden bekommst einen Prozesshandle zurück. Die Frage gehört dann aber eher in das WinAPI-Forum.



  • Ich würde eine Batch-Datei schreiben, die das Programm immer wieder neu startet:

    :start
    das_programm.exe
    if errorlevel 1 goto ende ;regulärer Abbruch mit exit(1);
    goto start
    :ende
    


  • Dieser Thread wurde von Moderator/in HumeSikkins 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.


Anmelden zum Antworten