Programm starten nachdem Programm beendet wurde?
-
CreateProcess() mit DETACH-Option am Ende des Programms.
-
Power Off schrieb:
CreateProcess() mit DETACH-Option am Ende des Programms.
Gibt es dazu irgendwo schnipsel oder tutorials?
-
Hi,
ich haette das so geloest:... case WM_DESTROY: WinExec("notepad.exe", SW_SHOW); PostQuitMessage(0); return 0;Habs ausprobiert und es klappt (wenn ich dein Problem richtig verstanden habe). Es geht sicherlich auch mit ShellExecute(...).
Gruss,
DeSoVoDaMu
-
DeSoVoDaMu:
Ja, aber so wird ja das Programm noch innerhalb des Messageloops aufgerufen.
Also das alte Programm ist ja noch nicht zuende, lediglich das Fenster wird gerade entfernt.atexit dagegen wird erst nach verlassen der main Funktion aufgerufen.
-
SeppSchrot schrieb:
atexit dagegen wird erst nach verlassen der main Funktion aufgerufen.
wie funktioniert das denn?
-
Ja OK, aber wo liegt das Problem, wenn das Programm innerhalb der MessageLoop aufgerufen wird? Man merkt das doch nicht

***, kannst du uns verraten, was du machen willst bzw warum es dir so wichtig ist, das Programm erst nachher zu starten? Mich würde es zumindest mal interessieren, wieso man ein anderes Programm wirklich erst nach dem Abgang des 1. starten muss/will.
Gruss,
DeSo
-
DeSoVoDaMu schrieb:
Ja OK, aber wo liegt das Problem, wenn das Programm innerhalb der MessageLoop aufgerufen wird? Man merkt das doch nicht

***, kannst du uns verraten, was du machen willst bzw warum es dir so wichtig ist, das Programm erst nachher zu starten? Mich würde es zumindest mal interessieren, wieso man ein anderes Programm wirklich erst nach dem Abgang des 1. starten muss/will.
Gruss,
DeSoProgrammstarter, ich möchte nicht aus DirectDraw heraus ein Programm starten sondern erst das komplette programm runterfahren und zwar ganz! und dann erst das programm starten um fehler vorzubeugen.
-
Setz es doch einfach vor dein return in der WinMain.
-
MisterX schrieb:
Setz es doch einfach vor dein return in der WinMain.
Ist man dann noch im Programm? JA, es soll aber nachdem das return aufgerufen wurde gestartet werden, red ich so undeutlich oder kapierst du es nicht?
-
Ruhig Blut!
DirectX sollte schon komplett und sauber runtergefahren sein, wenn du dieses return erreichst. Das ist nämlich deine Aufgabe.
Die Methode "Stecker rausziehen - DirectX wird sich schon selbst herunterfahren" sollte man nicht machen.atexit musst du die Adresse einer Funktion übergeben, die nach Verlassen der main Funktion aufgerufen wird.