Ich benutze die
DP schon recht lange als Nachschlagewerk und das eigentlich immer erfolgreich, doch jetzt weiss ich nicht mehr weiter.
Ich arbeite an einem Programm, das Benutzereingaben speichert und wiedergibt (soll zum testen anderer Software eingesetzt werden).
Mein Problem ist jetzt, wenn bei der Wiedergabe ein anderes Programm gestartet wird, das ich solange warten muss, bis das Programm mit laden fertig ist.
Dazu hab ich dann WaitForInputIdle gefunden, nur bekomm ich immer die Meldung, mein
Handle sei ungültig.
Delphi-Quellcode:
var wndHandle : thandle;
pID : DWORD;
ProcessHandle : cardinal;
processname :
string;
begin
// das Fenster existiert und ich bekomme ein handle
wndhandle :=FindWindow(
nil,'
unbekannt - Editor');
// die Funktionen sind von den Jedis.. machen aber das selbe wie die von Windows..
processname := GetProcessNameFromWnd(wndHandle);
pID := GetPidFromProcessName(processname);
// mit anderen Process-Rechten passiert das selbe
processhandle := OpenProcess(SYNCHRONIZE ,false,pID);
if processhandle = 0
then ShowMessage(sysErrorMessage(getLastError));
case WaitForInputIdle(processhandle,10000)
of
0 : Showmessage('
Ok');
WAIT_TIMEOUT : Showmessage('
TimeOut');
WAIT_FAILED : ShowMessage(sysErrorMessage(getLastError));
end;
end;
Egal welche ID ich WaitForInputIdle übergebe, ich bekomme ich die Meldung mein
Handle sei ungültig.
Wenn jemand ne Idee/Vorschlag/Alternativen hat, wäre mir sehr geholfen.
mfg Sebastian