Habe jetzt mit
Delphi-Quellcode:
type
PJobObjectBasicProcessIDList = ^TJobObjectBasicProcessIDList;
TJobObjectBasicProcessIDList = Record
NumberOfAssignedProcesses : DWORD;
NumberOfProcessIdsInList : DWORD;
ProcessIdList : Array[0..0] of ULONG;
End;
var
Info: TJobObjectBasicProcessIDList;
Len : Cardinal;
Result := QueryInformationJobObject(hJob,JobObjectBasicProcessIdList,@Info,SizeOf(Info),@Len);
geschafft nachzusehen ob Prozesse im Job sind. Das geht auch! Starte ich einmal oder zweimal Notepad es ist immer in der Info.NumberOfAssignedProcesses die richtige Anzahl.
Wie ist jetzt am besten hier im Programm stehen zu bleiben bis Info.NumberOfAssignedProcesses = 0?
Und zwar so, dass das Programm aber noch andere Funktionen bearbeiten kann.
Mit einem repeat until? WaitForSingleObject?
Wenn diese beiden Methoden probiere ist ja mein Programm blockiert, oder?
Es soll ja das externe Programm gestartet werden - Check ob's läuft - wenn's läuft andere Funktionen ausführen wie z.B. Keyboard Events rüberschicken usw. - wenn das externe Programm beendet wird fährt auch mein Programm nieder.