Einzelnen Beitrag anzeigen

Hobbycoder

Registriert seit: 22. Feb 2017
955 Beiträge
 
#4

AW: Schleife in Delphi

  Alt 21. Jul 2020, 11:28
Wenn du deine "box.exe" selbst startest, könntest du auch mit WaitForSingleObject arbeiten

Delphi-Quellcode:
function RunProcess(FileName: string; ShowCmd: DWORD; wait: Boolean; ProcID: PDWORD): Longword;
var
   StartupInfo: TStartupInfo;
   ProcessInfo: TProcessInformation;
begin
   FillChar(StartupInfo, SizeOf(StartupInfo), #0);
   StartupInfo.cb := SizeOf(StartupInfo);
   StartupInfo.dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
   StartupInfo.wShowWindow := ShowCmd;
   if not CreateProcess(nil,
     @Filename[1],
     nil,
     nil,
     False,
     CREATE_NEW_CONSOLE or
     NORMAL_PRIORITY_CLASS,
     nil,
     nil,
     StartupInfo,
     ProcessInfo)
     then
       Result := WAIT_FAILED
   else
   begin
     if wait = FALSE then
     begin
       if ProcID <> nil then ProcID^ := ProcessInfo.dwProcessId;
       exit;
     end;
     WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
     GetExitCodeProcess(ProcessInfo.hProcess, Result);
   end;
   if ProcessInfo.hProcess <> 0 then
     CloseHandle(ProcessInfo.hProcess);
   if ProcessInfo.hThread <> 0 then
     CloseHandle(ProcessInfo.hThread);
end;
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat