Показать сообщение отдельно
  #15  
Старый 20.02.2024, 23:07
Shaft Shaft вне форума
Новичок
 
Регистрация: 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');
Ответить с цитированием