Registriert seit: 5. Jan 2005
186 Beiträge
FreePascal / Lazarus
|
RunProcess - Hauptprogramm friert ein ...
8. Jan 2005, 22:01
Ich rufe mit meinem Programm über RunProcess ein externes Programm auf, auf dessen Beendigung mein Programm warten soll. In diesem Zeitraum friert mein Programm ein. Gibt es eine Möglichkeit dies zu verhindern?
Hier der RunProcess-Code, den ich verwende:
Delphi-Quellcode:
function RunProcess(FileName: string; ShowCmd: DWORD; wait: Boolean; ProcID: PDWORD;const AdwProcessPriority : DWORD): 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
AdwProcessPriority,
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;
Delphi-Quellcode:
ProcID := 0;
RunProcess(pchar('Programm ausführen'), SW_SHOW, True, @ProcID, Cardinal(CPUP.Items.Objects[CPUP.ItemIndex]) );
|
|
Zitat
|