Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 5
Всего онлайн: 5
Зарегистрировано юзеров: 6502
Комментариев на сайте: 647
Новый юзер: TaunerDral



Последние комментарии
c
Cmertb06 прокомментировал "Урок 1 - Инициализация OpenGL":
Возможно ли рисовать на экране? Например у Screen.Monitors[0] есть свойство Handle?
Aqel прокомментировал "Урок 71 - Работа с сжатыми файлами":
uses ...sevenzip, ... function ProgressCallback(sender: Pointer; total: boolean; value: int64): HRESULT; stdcall; begin if total then Form1.sprgrsbr1.Max:= value else Form1.sprgrsbr1.Position:= value; Result:= S_OK; end; function Decompress(FileName, DestDir, ArcFname: String; ArcDir: Boolean ): Boolean; var i: Integer; ItP: string; items: array[1..11] of Cardinal; sprgrsbr1: TsProgressBar; begin Result:= False; Application.ProcessMessages; try with CreateInArchive(CLSID_CFormat7z) do begin OpenFile(FileName); SetProgressCallback(sprgrsbr1, ProgressCallback); for i:= 1 to NumberOfItems - 1 do if not ItemIsFolder[i] then //ExtractItem(items[i], Steam, False); - как ей пользоваться в душе не понимаю... ExtractTo(DestDir); end; finally Result:= True; end; end;

Запуск внешнего приложения и ожидание его завершения

Пример показывает как из Вашей программы запустить внешнее приложение и подождать его завершения.

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

Вот и всё, Удачи!

Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 29 Октября 2013
Просмотров:


Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил(а): pvm68 [Новичок] Дата: 2014-01-29
очень понятно спасибо