Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];

Вниз

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

 
Алена   (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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.054 c
14-1122323478
mr. X
2005-07-26 00:31
2005.08.21
Вот Вы тут такие умные...


6-1115884049
DmitryMN
2005-05-12 11:47
2005.08.21
Проблема с пересылкой записи чеп рез сокет


4-1119697602
Darkwing
2005-06-25 15:06
2005.08.21
Асинхронный I/O


14-1122443778
vidiv
2005-07-27 09:56
2005.08.21
Настройка DNS сервера


8-1113269569
Медиамэн
2005-04-12 05:32
2005.08.21
Распарсить флэш-файл (swf)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский