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

Вниз

Отловить завершение процесса   Найти похожие ветки 

 
Алена   (2005-06-22 18:02) [0]

Я запускаю в цикле с помощью WinExec приложение с определенными условиями, мне необходимо отследить завершение первого шага (работа приложения), чтобы выполнить это-же приложение с другими условиями на втором, третьем .... шаге. Подскажите какой функцией воспользоваться или методом ?!?


 
Smithson   (2005-06-22 18:09) [1]

Во-первый, WinExec - это прошлый век.
Во-вторых, если использовать что более современное (CreateProcess, например), то у него есть параметр lpProcessInformation, в котором есть handle главного окна запущенного приложения (ведь windows - оконная система). И вы можете просто ожидать становления этого handle "невалидным" - что эквивалетно завершению процесса. Ожидать можно, например, с помощью WaitFor или подобных функций (их в WinAPI много). Подробности - в помощи Deplhi, на MSDN или здесь.


 
Игорь Шевченко ©   (2005-06-22 18:21) [2]

Smithson   (22.06.05 18:09) [1]


> Во-первый, WinExec - это прошлый век.


Он не черствеет, это не черный хлеб.

Алена   (22.06.05 18:02)  


> Подскажите какой функцией воспользоваться или методом ?!?


Например, ShellExecuteEx

procedure TfMain.DumpFile(const FileName: string);
var
 ShellInfo: TShellExecuteInfo;
 ParamsString: string;
begin
 ParamsString := Format("-em %s %s.aaa", [FileName, FileName]);
 ShellInfo.cbSize := SizeOf(ShellInfo);
 ShellInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
 ShellInfo.Wnd := Handle;
 ShellInfo.lpVerb := "open";
 ShellInfo.lpFile := "tdump";
 ShellInfo.lpParameters := PChar(ParamsString);
 ShellInfo.lpDirectory := nil;
 ShellInfo.nShow := SW_SHOW;
 if not ShellExecuteEx(@ShellInfo) then
   RaiseLastWin32Error;
 if ShellInfo.hProcess <> 0 then
   try
     WaitForSingleObjectEx(ShellInfo.hProcess, INFINITE, false);
     //Дождались...
   finally
     CloseHandle(ShellInfo.hProcess);
   end;
end;



 
Гость2   (2005-07-01 11:37) [3]


> Игорь Шевченко ©   (22.06.05 18:21) [2]

Что надо добавить в Uses?


 
alpet ©   (2005-07-01 11:42) [4]

Гость2   (01.07.05 11:37) [3]
ShellApi



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

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

Наверх




Память: 0.47 MB
Время: 0.041 c
1-1122971216
webpauk
2005-08-02 12:26
2005.08.21
Handle формы


4-1120018732
leonidus
2005-06-29 08:18
2005.08.21
Как отследить момент отпускания левой клавиши мыши?


14-1122718012
Ajax
2005-07-30 14:06
2005.08.21
Экспоненциальное усреднение


14-1122004620
Silvestr
2005-07-22 07:57
2005.08.21
ИСХОДНИКИ ! Программ администрирования


8-1112790706
Asic
2005-04-06 16:31
2005.08.21
Видео и Аудио плеер с помощью DSPack a