Запуск внешнего приложения и ожидание его завершения
Пример показывает как из Вашей программы запустить внешнее приложение и подождать его завершения.
function ExecAndWait(const FileName, Params: ShortString; const WinState: Word): boolean; export; var StartInfo: TStartupInfo; ProcInfo: TProcessInformation; CmdLine: ShortString; begin { Помещаем имя файла между кавычками, с соблюдением всех пробелов в именах Win9x } CmdLine := '"' + Filename + '" ' + Params; FillChar(StartInfo, SizeOf(StartInfo), #0); with StartInfo do begin cb := SizeOf(SUInfo); dwFlags := STARTF_USESHOWWINDOW; wShowWindow := WinState; end; Result := CreateProcess(nil, PChar( String( CmdLine ) ), nil, nil, false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, PChar(ExtractFilePath(Filename)),StartInfo,ProcInfo); { Ожидаем завершения приложения } if Result then begin WaitForSingleObject(ProcInfo.hProcess, INFINITE); { Free the Handles } CloseHandle(ProcInfo.hProcess); CloseHandle(ProcInfo.hThread); end; end;А вот пример вызова этой функции:
ExecAndWait( 'C:windowscalc.exe', '', SH_SHOWNORMAL)Параметр FileName = Имя внешней программы. Параметр Params = Параметры, необходимые для запуска внешней программы Параметр WinState = Указывает - как будет показано окно: Для этого параметра мы можем так же использовать следующие константы: SW_HIDE, SW_MAXIMIZE, SW_MINIMIZE, SW_SHOWNORMAL Вот и всё, Удачи!
Добавил(а): Joker1999obp | Дата: 2013-11-17 | |
давайте следующий урок или статья будет - как создать меню для игры без дополнительных форм.
|
Добавил(а): pvm68 | Дата: 2014-01-29 | |
очень понятно спасибо
|
Добавил(а): Aleksandr-Slah | Дата: 2015-07-06 | |
Помогите мне пожалуйста!
|
No results found.