programm neu starten



  • hallo,

    wie kann ich ein programm neu starten wenn ich aber nicht weiß in welchem verzeichnis sich das programm befindet, da es z.B. der benutzter wo anderes installiert hat.

    bis jetzt hab ich es so gemacht, aber das geht ja nur wenn die exe auch in dem verzeichnis ist.

    WinExec("G:/lvp_projekt/lvp_projekt/release/lvp 0.12.exe", SW_NORMAL);
    PostQuitMessage (0) ;
    

    gibt es vieleicht ne funktion die das macht, also das gleiche programm das man offen hat nochmal öffnen?

    sascha



  • 1. Erstmal solltest Du lieber ShellExecute verwenden, statt WinExec.
    2. Entweder per Regedit den Pfad rausfinden, wenn möglich oder per Datei-Suche



  • ShellExecute(argv[0],...);
    


  • Handelt es sich um ein Programm, was Du geschrieben hast, bzw. was sich selbst neu starten soll? Dann einfach via GetModuleFileName den Pfad ermitteln 😉 .

    PS: Wenn das Programm selbst verhindert, dass man es mehrfach starten kann, musst Du Dir ein "Zwischenprogramm" schreiben, was dann den Start vornimmt.

    Edit, @Machine: Funktioniert natürlich *so* nur in nem Konsolen-Programm aber dafür gabs auch globale Variablen (nur VS-05/08, Standard-inkonform!)...glaube: __argv ... und setzt voraus, dass es sich um sein Programm handelt^^.



  • ich bin davon ausgegangen, dass er sein programm neu starten will.

    du irrst dich, ich benutze ziemlich oft in mfc-dialoganwendungen __targv[], das gibts da auch 😉 nicht nur in der konsole.

    edit, sorry, sehe grad, dass du auch von __argv gesprochen hast. dann hast du natürlich recht 😉 es ist aber das gleiche.


Anmelden zum Antworten