F
Futzel
Hallo,
folgendes Problem stellt sich mir.
Ich erstelle einen neuen Prozess "Prozess 2 (Konsolenfenster).
1. Prozess 1 soll bei Beendung von Prozess 2 (Fenster wird geschlossen) ausgeben ob der Process erfolgreich oder nicht erfolgreich beendet wurde.
2. Prozess 2 soll in seinem Konsolenfenster seine ProzessID ausgeben.
Wie bekomme ich diese beiden Punkte realisiert
Hier mein Bisheriger Code:
folgendes Problem stellt sich mir.
Ich erstelle einen neuen Prozess "Prozess 2 (Konsolenfenster).
1. Prozess 1 soll bei Beendung von Prozess 2 (Fenster wird geschlossen) ausgeben ob der Process erfolgreich oder nicht erfolgreich beendet wurde.
2. Prozess 2 soll in seinem Konsolenfenster seine ProzessID ausgeben.
Wie bekomme ich diese beiden Punkte realisiert
Hier mein Bisheriger Code:
C++:
int _tmain(int argc, _TCHAR* argv[])
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
DWORD rwait;
// --- Speicher loeschen STARTUPINFO ---
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si); // Groesse
// --- Speicher loeschen ProcessInfo ---
ZeroMemory( &pi, sizeof(pi) );
//Fenstertitel umbenennen
GetStartupInfo(&si);
si.lpTitle =("Prozess 2");
//Auf Multibyte-Char umstellen
// Start the child process.
if( !CreateProcess( NULL, // No module name (use command line)
"cmd.exe", // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
CREATE_NEW_CONSOLE, //creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi ) // Pointer to PROCESS_INFORMATION structure
)
{
cout << "CreateProcess failed: "<< GetLastError() <<endl;
exit(-1);
}
//Ausgabe von hProcess und dwProcessId
cout << "Die ProzessID von Prozess 2 ist: " << + pi.hProcess << endl;
cout << "Die dWProzessID von Prozess 2 ist: " << + pi.dwProcessId << endl << endl;
cout << "GEtCurrentProcessID: " << GetCurrentProcessId() << endl;
// Wait until child process exits.
rwait = WaitForSingleObject( pi.hProcess, INFINITE );
if (rwait != WAIT_FAILED)
{
cout << "Prozess erfolgreich beendet" <<endl;
}else{
cout << "Prozess nicht erfolgreich beendet" << GetLastError() << endl;
}
// Close process and thread handles.
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
getch();
return 0;
}
Zuletzt bearbeitet von einem Moderator: