wie finde ich raus ob der Process noch läuft?
-
Hallo,
Mit meiner Anwendung öffne ich einen Process, aber wie kann ich herausfinden ob er nicht zwischendurch abgeschmiert ist oder überhaupt gestartet wurde?
So Starte ich den Prozess:
STARTUPINFO si; ZeroMemory(&si,sizeof(STARTUPINFO)); si.cb=sizeof(STARTUPINFO); si.dwFlags=STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES; si.wShowWindow=SW_HIDE; ZeroMemory(&pi,sizeof(PROCESS_INFORMATION)); if(!CreateProcess((Pfad +"bin\\SpektroHard.exe").c_str(),NULL,NULL,NULL,true,0,NULL,NULL,&si,&pi)) RaiseLastWin32Error();
-
Du benutzt doch "pi" wo ich mal davon ausgehe, dass das eine PROCESS_INFORMATION ist.. dann einfach das ProcessHandle aus pi überprüfen.. sollte
pi.hProcesssein, glaub ich...
-
pi ist PROCESS_INFORMATION
Wie kann ich das denn aktualieren?
wenn der Process gestartet wird, aber zwischendurch abschmiert, dann hab ich eine ID oder handle die mir aber nicht sagt ob der Prozess noch läuft oder nicht!
-
if (WaitForSingleObject(pi.hProcess, 0) == OBJECT_0) // prozess hat sich beendet
-
Danke hat funktioniert!