Добавить комментарий

Delphi

Запустить внешнюю программу и дождаться завершения

Пример кода:

...
var
  SI: TStartupInfo;
  PI: TProcessInformation;
begin
  // Заполняем StartupInfo
  with SI do
  begin
    cb := SizeOf(TStartupInfo);
    dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
    wShowWindow := SW_SHOWNORMAL;  
  end;
  // Выполняем запуск
  if CreateProcess(nil, PChar('Имя файла с путём'), nil, nil, False, 0, nil, nil, SI, PI) then
  begin // Если запуск удался
    // ожидаем завершения, каждые 100 мс давая продышаться основному потоку.
    repeat
       application.ProcessMessages;
    until WaitForSingleObject(PI.hProcess, 100) <> WAIT_TIMEOUT;
    // Закрываем свои дескрипторы
    CloseHandle(PI.hThread);
    CloseHandle(PI.hProcess);
  end
    else
  begin
    // Делаем, что должны, если запуск не удался.
  end;
  ...
Метки:

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.
  • Вы можете цитировать другие сообщения, используя тэг [quote]

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.