Hauptanwendung soll weiterlaufen beim Start eines Child Prozess



  • Hallo, im folgendem Programm will ich z.B. eine Anwendung starten, dabei hält die Konsole so lange bis der Child Prozess beendet wird, was muss geändert werden damit beides weiterläuft?

    #include <windows.h>
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int ExecCommand(string Command)
    {
    	STARTUPINFO siStartupInfo;
    	PROCESS_INFORMATION piProcessInfo;
    	memset(&siStartupInfo, 0, sizeof(siStartupInfo));
    	memset(&piProcessInfo, 0, sizeof(piProcessInfo));
    	siStartupInfo.cb = sizeof(siStartupInfo);
    
    	if(CreateProcess(NULL, (LPSTR)Command.c_str(), 0, 0, FALSE, HIGH_PRIORITY_CLASS, 0, 0, &siStartupInfo, &piProcessInfo))
    	{
    		WaitForSingleObject(piProcessInfo.hProcess, INFINITE);
    
    		CloseHandle(piProcessInfo.hProcess);
    		CloseHandle(piProcessInfo.hThread);
    
    		return 1;
    	}
    	else
    		return 0;
    }
    
    int main()
    {
    	string input;
    	string prompt = "EXEC:";
    	do
    	{
    		cout << prompt;
    		cin >> input;
    
    		ExecCommand(input);
    
    	}while(1);
    	return 0;
    }
    


  • WaitForSingleObject streichen.


Anmelden zum Antworten