Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Delphi Console ShellExecuteEX

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Dod



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
  Помогите, пожалуйста, чайнику в Delphi.
 
В консольном приложении посредством ShellExecuteEX
подряд запускаются несколько exe'шек. Но каждая,
кроме первой, должна дождаться завершения предыдущей.
 
   Как это проще всего сделать?

Всего записей: 51 | Зарегистр. 25-09-2002 | Отправлено: 14:02 30-07-2003
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
попробуй передать SHELLEXECUTEINFO.hProcess в WaitForSingleObject. Если не получиться замени ShellexecuteEx на CreateProcess и использовать WaitForSingleObject.
 
 

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 12:28 31-07-2003
ironwit

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
попробуй это, у меня работает
 
function EXECAndWAIT(const FileName, Params: ShortString; const WinState: Word): boolean;
var
  StartInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
begin
  { Put the name of file between quotes, due to spaces in names of files in system Win9x }
  FillChar(StartInfo, SizeOf(StartInfo), #0);
  with StartInfo do
  begin
    cb := SizeOf(StartInfo);
    dwFlags := STARTF_USESHOWWINDOW;
    wShowWindow := WinState;
  end;
  Result := CreateProcess(nil,pchar(string(Filename+' '+Params)), nil, nil, false,
                          CREATE_NEW_CONSOLE, nil,
                          nil,StartInfo,ProcInfo);
  { WAIT the finish of program }
  if Result then
  begin
    CloseHandle(ProcInfo.hThread);
 
    WAITForSingleObject(ProcInfo.hProcess, INFINITE);
    { Free the Handles }
    CloseHandle(ProcInfo.hProcess);
  end;
end;


----------
Don't drink, and drive. Smoke and fly.

Всего записей: 1892 | Зарегистр. 11-10-2002 | Отправлено: 12:49 31-07-2003
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Delphi Console ShellExecuteEX


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru