20.02.2024, 23:07
|
Новичок
|
|
Регистрация: 15.05.2013
Сообщения: 74
Версия Delphi: 7/10.4
Репутация: 12
|
|
Как вариант еще вот так попробовать
Код:
function WinExecAndWait(Filename, params, dir: string):cardinal;
var
WorkDir, programName:string;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
GetDir(0,WorkDir);
programName:=WorkDir+'\'+dir+'\'+FileName;
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb:= Sizeof(StartupInfo);
StartupInfo.dwFlags:= STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow:= SW_SHOW;
if not CreateProcess(nil,
PChar(ProgramName+' '+params),
nil,
nil,
false,
CREATE_NEW_CONSOLE or
NORMAL_PRIORITY_CLASS,
nil,
PChar(ExtractFilePath(programName)),
StartupInfo,
ProcessInfo) then result := 0
else begin
WaitforSingleObject(ProcessInfo.hProcess, INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess, result);
end;
end;
//юзал
WinExecAndWait('test.exe','"param1" "param2" "param3"','testdir');
|