Programm aus C++ Programm öffnen

psycomantis

Gesperrt
Wie kann ich bewirken das aus meinem Programm ein anderes geöffnet wird?
Beispiel:

if(i==1)
{
//hier sollte nun der Befehl stehnen mit dem ein Beliebiges anderes Programm geöffnet wird
}
 
Ich gehe mal davon aus, das das für Windows ist.
Am besten eigent sich da CreateProcess(), da es am flexibelsten ist.
Man kann die Rückgabewerte (Return-/Exitcode) eines Programmes erfahren, in dem man auf den Kindprozess wartet.
Desweiteren kann man dem stdin, stdout, stderr des Kindprozesses umleiten.
Das ganze hängt natürlich davon ab was genau du machen willst.
Evtl. reicht auch schon ein system().

Gruß Homer
 
Man kann auch sagen:

Code:
include <process.h>
...
spawnl(Pfad des Programms,Parameter1,...,NULL);
...

Hier können beliebig viele (auch 0) Parameter an das Programm übergeben werden. Der letzte Wert muss aber immer NULL sein.
 
Irgentwas muss ich nicht verstanden haben:
Vieleicht könntet ihr mir Helfen.
Ich habe die Exe Datei des Spieles Generäle unter C.
Hier mein Code, mit dem ich versuche diese Exe zu öffnen.

Code:
[
#include <process.h>

void main()
{
	spawnl(C:\Generals,NULL,NULL);
}
]
 
Irgentwas muss ich nicht verstanden haben:
Vieleicht könntet ihr mir Helfen.
Ich habe die Exe Datei des Spieles Generäle unter C.
Hier mein Code, mit dem ich versuche diese Exe zu öffnen.

Code:
#include <process.h>

void main()
{
	spawnl(C:\Generals,NULL,NULL);
}

Wo liegt mein Fehler?
 
Du hast im Pfad den Namen der Exe nicht angegeben ? Ein Slash \ ist ein Steuerzeichen und muss in einem string mit \\ angegeben werden !
 
Original geschrieben von psycomantis
Irgentwas muss ich nicht verstanden haben:
Vieleicht könntet ihr mir Helfen.
Ich habe die Exe Datei des Spieles Generäle unter C.
Hier mein Code, mit dem ich versuche diese Exe zu öffnen.

Code:
#include <process.h>

void main()
{
	spawnl(C:\Generals,NULL,NULL);
}


Wo liegt mein Fehler?


Außerdem muss das ganze in Tüddelchen:


Code:
#include <process.h>

void main()
{
	spawnl("C:\\Generals.exe",NULL,NULL);
}
 
Zurück