Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

закрытие [D5, XP]


vova_vova ©   (2006-03-24 13:11:00) 

День добрый. Подскажите пожалуйста, как отследить закрытие программы, открытой из моего приложения функцией winexec. Спасибо


vova_vova   (2006-03-24 14:18:00) [1]

Спасибо, попробую...


Рамиль   (2006-03-24 13:29:00) [2]

var
 Rlst: LongBool;
 StartUpInfo: TStartUpInfo;
 ProcessInfo: TProcessInformation;
 Error: integer;
 ExitCode: Cardinal;
begin
 FillChar(StartUpInfo, SizeOf(TStartUpInfo), 0);
 with StartUpInfo do
 begin
   cb := SizeOf(TStartUpInfo);
   dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
   wShowWindow := SW_SHOWNORMAL;
 end;
 Rlst := CreateProcess('C:\Windows\System32\notepad.exe', ' c:\readme.txt', nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, StartUpInfo, ProcessInfo);
 if Rlst then
 with ProcessInfo do begin
   WaitForInputIdle(hProcess, INFINITE); // ждем завершения инициализации
   WaitforSingleObject(ProcessInfo.hProcess, INFINITE); // ждем завершения процесса
   GetExitCodeProcess(ProcessInfo.hProcess, ExitCode); // получаем код завершения
   CloseHandle(hThread); // закрываем дескриптор процесса
   CloseHandle(hProcess); // закрываем дескриптор потока
 end
else Error := GetLastError;
end;


Рамиль   (2006-03-24 13:25:00) [3]

Winexec не получится. Используй CreateProcess.


Наверх

Титульная страница Поиск, карта сайта Написать письмо