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

Вниз

ShellExecute ?   Найти похожие ветки 

 
Yuriy   (2001-11-25 22:13) [0]

С помощью ShellExecute запускаю некую прогу, скажем архиватор, как узнать, что она закончила свою работу? Нужно узнать время прошедшее с начала архивации до ее завершения


 
Fellomena   (2001-11-26 15:55) [1]

Если запускаешь с помощью ShellExecute, то никак - ShellExecute просто запускает процесс, не "зная" о нём ничего.
Используй CreateProcess, с его помощью можно отслеживать окончание работы запущенных процессов.


 
Romkin   (2001-11-26 16:34) [2]

Как не знает???
Возвращаемое значение - instance handle, поэтому можно использовать
WaitForSingleObject|MsgWaitForSingleObject на результат
Можно и использовать ShellExecuteEx, там HINSTANCE в структуре


 
handra   (2001-11-26 18:41) [3]


unit exec;

interface

function ExecAndWait(const fname,params: string; nShowCmd: Cardinal): boolean;

implementation

uses Windows, ShellAPI, Forms;

function ExecAndWait(const fname,params: string; nShowCmd: Cardinal): boolean;
var data: TShellExecuteInfo;
begin
Result := false;
data.cbSize := sizeof(data);
data.fMask := SEE_MASK_DOENVSUBST or SEE_MASK_NOCLOSEPROCESS;
data.Wnd := 0;
data.lpVerb := nil;
data.lpFile := PChar(fname);
data.lpParameters := PChar(params);
data.lpDirectory := nil;
data.nShow := nShowCmd;
ShellExecuteEx(@data);
while true do begin
Application.ProcessMessages;
case WaitForSingleObject(data.hProcess,100) of
WAIT_FAILED: Result := false;
WAIT_OBJECT_0: Result := true;
else continue;
end;
break;
end;
end;

end.



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

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

Наверх




Память: 0.44 MB
Время: 0.004 c
4-90420
Alex870
2001-11-28 22:48
2002.01.28
Неужели никто не знает...


1-90291
Ig
2002-01-10 19:17
2002.01.28
Как сделать COM DLL?


14-90352
Brand
2001-11-30 23:35
2002.01.28
Кодирование информации


3-90195
Вика
2001-12-21 22:25
2002.01.28
Хранимые процедуры и рефреш таблицы


1-90306
ProfiUgl
2002-01-11 11:09
2002.01.28
Помогите разобраться с COM сервером





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский