Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

GetExitCodeProcess richtig verwenden

  Alt 21. Nov 2010, 16:47
Ich habe hier mal eine Funktion implementiert, die überprüft, ob ein Prozess beendet wurde:
Delphi-Quellcode:
function TKillProcess.HasProcessTerminated: Boolean;
var
  ProcessHandle: Cardinal;
  ProcessExitCode: DWORD;
const
  PROCESS_QUERY_LIMITED_INFORMATION = $1000;
begin
  Result := False;
  ProcessHandle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_QUERY_LIMITED_INFORMATION, False, FProcessID);
  if ProcessHandle <> 0 then
  begin
    if GetExitCodeProcess(ProcessHandle, ProcessExitCode) then
    begin
      case ProcessExitCode of
        STILL_ACTIVE: Result := False;
      else
        Result := True;
      end;
    end
    else
    begin
      RaiseLastOSError;
    end;
    CloseHandle(ProcessHandle);
  end
  else
  begin
    RaiseLastOSError;
  end;
end;
Funktioniert das so zuverlässig oder hab eich da was übersehen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat