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

Вниз

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

 
kerkonst ©   (2002-09-03 11:18) [0]

Здраствуйте !
Недели две назад я уже задавал этот вопрос, и мне дали подробный ответ - текст функции из какой-то библиотеки. Но я его нигде не сохранил, а сейчас мне это снова понадобилось... Сорри...

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


 
Виктор Щербаков ©   (2002-09-03 11:19) [1]

Используй CreateProcess.


 
Ученик ©   (2002-09-03 11:23) [2]

{ 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-09-03 11:28) [3]

> Ученик
Помнится, именно Вы мне в прошлый раз и ответили... Спасибо...


 
kerkonst ©   (2002-09-03 12:05) [4]

Требуется дополнение...

В тексте используется функция PCharOrNil.
Ее смысл понятен, так что можно и самому написать, но лучше
взять уже готовую...
Киньте, если не сложно


 
Ученик ©   (2002-09-03 12:10) [5]

function PCharOrNil(const S: AnsiString): PAnsiChar;
begin
if Length(S) = 0 then
Result := nil
else
Result := PAnsiChar(S);
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
4-51030
Boroda Oleg
2002-07-26 11:07
2002.09.16
событие при потере (передаче) фокуса у компонента.


1-50679
Guzz
2002-09-04 19:53
2002.09.16
Вопрос по активизации форм


1-50814
Dmk
2002-09-02 22:22
2002.09.16
Нельзя изменить размер формы за нижний край.


6-50908
eastwood
2002-07-10 06:26
2002.09.16
X.25


1-50685
АлексейТР
2002-09-02 14:15
2002.09.16
Подскажите уважаемые Гуру, переношу приложение на другой