Thema: Delphi Returncode von WinRar

Einzelnen Beitrag anzeigen

Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Returncode von WinRar

  Alt 24. Jan 2005, 22:34
Hi,

so noch mal was neues . Ich hatte bei meinen letzten Beiträgen gar nicht daran gedacht, dass ERRORLEVEL ja keine normale Umgebungsvariable ist.

Die folgende Funktion startet das Programm in Cmd und weißt nach dessen Ende den ExitCode dem gleichnamigen Parameter zu. Sollte beim Starten ein Fehler auftreten, wird false zurückgeliefert.
Delphi-Quellcode:
function RunProcess(Cmd: String; var ExitCode: Cardinal): Boolean;
var
  si: TStartupInfo;
  pi: TProcessInformation;
begin
  Result := false;
  ZeroMemory(@si, sizeof(si));
  si.cb := sizeof(si);
  ZeroMemory(@pi, sizeof(pi));

  if CreateProcess(nil, PChar(Cmd), nil, nil, false, 0, nil, nil, si, pi) then
  begin
    WaitForSingleObject(pi.hProcess, INFINITE);
    GetExitCodeProcess(pi.hProcess, ExitCode);
    Result := true;
  end;
  CloseHandle(pi.hProcess);
  CloseHandle(pi.hThread);
end;
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat