Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.26;
Скачать: CL | DM;

Вниз

Как дождатся конца работы проги, запущенной через ShellExecutе   Найти похожие ветки 

 
kerkonst   (2002-08-15 11:02) [0]

На моем рабочем компьютере Delphi установлена без Shared Files,
соответственно, help-а по ShellExecutе нет. И с такой проблемой я раньше не сталкивался. А инфа нужна сегодня, сейчас...

Как дождатся конца работы проги, запущенной через ShellExecutе ?

Можно конечно поставить кучу ProcessMessages, но это есть неправильно...


 
Ученик ©   (2002-08-15 11:15) [1]

Из Project JEDI Code Library (JCL)

function ShellExecAndWait(const FileName: string; const Parameters: string;
const Verb: string; CmdShow: Integer): Boolean;
var
Sei: TShellExecuteInfo;
Res: LongBool;
Msg: tagMSG;

begin
FillChar(Sei, SizeOf(Sei), #0);
Sei.cbSize := SizeOf(Sei);
Sei.fMask := SEE_MASK_DOENVSUBST or SEE_MASK_FLAG_NO_UI or SEE_MASK_NOCLOSEPROCESS or
SEE_MASK_FLAG_DDEWAIT;
Sei.lpFile := PChar(FileName);
Sei.lpParameters := PCharOrNil(Parameters);
Sei.lpVerb := PCharOrNil(Verb);
Sei.nShow := CmdShow;
Result := ShellExecuteEx(@Sei);
if Result then
begin
WaitForInputIdle(Sei.hProcess, INFINITE);
while (WaitForSingleObject(Sei.hProcess, 10) = WAIT_TIMEOUT) do
begin
repeat
Res := PeekMessage(Msg, Sei.Wnd, 0, 0, PM_REMOVE);
if Res then
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
until (Res = False);
end;
CloseHandle(Sei.hProcess);
end;
end;


 
kerkonst   (2002-08-15 11:58) [2]

Big thanks...



Страницы: 1 вся ветка

Текущий архив: 2002.08.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
14-85252
Григорий Ситнин
2002-07-29 13:22
2002.08.26
тихая инсталляция Oracle Client 8


1-85030
VZ-KZ
2002-08-12 15:09
2002.08.26
QuickReport


1-85116
Александр456
2002-08-15 10:21
2002.08.26
Рисунки в ImageList


3-84891
Radimir
2002-08-06 10:35
2002.08.26
Как подставить имя таблицы через Select


3-84904
Zelius
2002-07-26 17:19
2002.08.26
Грабли от MS SQL 2000 в виде MSDE!