![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Как запустить приложение и подождать пока оно отработает 8Delphi , Программа и Интерфейс , Приложения чужие
Автор: Elena_tark { **** UBPFD *********** by delphibase.endimus.com **** >> Дождаться завершение внешнего приложения Дожидается завершения внешнего процесса Зависимости: shellAPI Автор: elena_tark, elena_tark@freemail.ru, Калуга Copyright: Собственное Дата: 1 августа 2003 г. ***************************************************** } procedure ShellExec(Sender: TObject); var ProcInfo: PShellExecuteInfo; begin (Sender as TControl).Enabled := False; GetMem(ProcInfo, SizeOf(ProcInfo^)); with ProcInfo^ do begin Wnd := Handle; cbSize := SizeOf(ProcInfo^); lpFile := PChar('notepad.exe'); lpParameters := nil; lpVerb := 'open'; nShow := SW_SHOW; fMask := SEE_MASK_DOENVSUBST or SEE_MASK_NOCLOSEPROCESS; end; try Win32check(ShellExecuteEx(ProcInfo)); while not Application.Terminated and (WaitForSingleObject(ProcInfo.hProcess, 100) = WAIT_TIMEOUT) do Application.ProcessMessages; finally if ProcInfo.hProcess <> 0 then CloseHandle(ProcInfo.hProcess); Dispose(ProcInfo); (Sender as TControl).Enabled := True; end; end; Программный код на языке Delphi, демонстрирующий выполнение внешней приложения (в этом случае, Notepad.exe) и ожидание его завершения работы. Вот разбивка кода: Инициализация
Процедура Размещение памяти
Пойnter к структуре Настройка информации о shell-выполнении
Блок
Выполнение операции shell-выполнения
Функция Ожидание завершения внешнего приложения
Цикл
Освобождение ресурсов
В блоке
В статье описывается создание процедуры ShellExec в Delphi, которая запускает внешнее приложение и блокирует выполнение программы до тех пор, пока это приложение не будет закрыто. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Приложения чужие ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |