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)