C++ Konsole! [DRINGEND]

d-Stench

Erfahrenes Mitglied
Hallo Leute!

brauche schnell Euere Hilfe! Wie kann ich von einer Konsolenanwendung eine .exe Datei starten?
das funktionert:
Code:
system("c:\test.exe");
ABER ich will, dass das Konsolenfenster nach dem Aufruf wieder geschlossen wird! In dem Fall bleibt es so lang offen, wie das "TEST.EXE"-Programm ausgeführt wird.

Bitte keine .NET Lösungen, da die Anwendung auf einem Server läuft.

Danke

d-Stench
 
Wenn Du CreateProcess(...) nimmst, dann wird der neue Prozess gestartet und Deine Konsole fährt in ihrer Ausführung fort, kann sich also beenden. Du könntest auch WinExec(...) verwenden, aber das ist eigentlich nur noch aus Kompatibilitätsgründen zum 16-Bit-Windows da. Aktuell ist CreateProcess(...).
 
@Viper:

das blöde ist, dass die Anwendung in der Zeile bleibt in der die Anwendung "TEST.EXE" ausgeführt wird, bis ich die wieder schliesse.

@jokey

kannst bitte ein simples Beispiel posten? Bitte...
 
jokey2 hat gesagt.:
Wenn Du CreateProcess(...) nimmst, dann wird der neue Prozess gestartet und Deine Konsole fährt in ihrer Ausführung fort, kann sich also beenden. Du könntest auch WinExec(...) verwenden, aber das ist eigentlich nur noch aus Kompatibilitätsgründen zum 16-Bit-Windows da. Aktuell ist CreateProcess(...).

Fehlermeldung:

error C3861: 'CreateProcess': Bezeichner wurde auch mit einer argumentbezogenen Suche nicht gefunden
 
Damit sollte es funktionieren:

Code:
STARTUPINFO si;
    PROCESS_INFORMATION pi;
    SECURITY_ATTRIBUTES sa;
    BOOL bOK = TRUE;
    
    ZeroMemory(&si, sizeof(si));
    si.cb = sizeof(si);
    
    //Prozess starten
    pcCommandLine = (char*)(LPCTSTR)pCommand->m_cstrCommand;
    bOK = CreateProcess(NULL, 
     "c:\test.exe",
     NULL,
     NULL,
     TRUE,
     NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE,
     NULL,
     NULL,
     &si,
     &pi);
  
    if(!bOK)
    {
    //FEHLER
    }
 
Zurück