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

Вниз

Как отловить момент закрытия консольного приложения?   Найти похожие ветки 

 
Jet ©   (2005-08-03 16:05) [0]

Приветствую,
Как отловить момент закрытия консольного приложения,  запущенного под Windows? Ситуация такая: мне нужно во время программы выполнить консольное приложение, а после ее завершения продолжить работу программы. Для Windows приложений сделать такое не проблема (на примере калькулятора):
--
...
Handle :=  WinExec("calc.exe",SW_SHOW);
Handle :=  FindWindow("SciCalc", Nil);
while (FindWindow("SciCalc",NIL) <> 0) do
begin
 sleep(1000);
end;
...
--
Для Windows приложений получилось, подскажите как сделать такое же для консольных приложений, с учетом того, что запущено не одно консольное приложение?


 
Игорь Шевченко ©   (2005-08-03 16:10) [1]

CreateProcess + GetExitCodeProcess


 
Digitman ©   (2005-08-03 16:11) [2]

консольные Win-приложения есть такие же равноправные приложения, как и прочие Win-приложения

WinExec() - способ не лучший (если не сказать - не подходящий)

см. CreateProcess() + [Msg]WaitFor- ф-ции в составе WinAPI


 
Jet ©   (2005-08-03 16:22) [3]

А как получить имя приложения? У меня выдает только ConsoleWindowsClass.


 
Игорь Шевченко ©   (2005-08-03 16:24) [4]

Jet ©   (03.08.05 16:22) [3]

CreateProcess вместо WinExec - получишь ID процесса


 
Jet ©   (2005-08-03 16:47) [5]

А можете поделиться кодом, если не сложно?


 
Digitman ©   (2005-08-03 16:52) [6]


> Игорь Шевченко


Держись.


 
Игорь Шевченко ©   (2005-08-03 17:29) [7]


procedure CreateProcessAndWait (Image, Params: string);
var
 pi: PROCESS_INFORMATION;
 si: _STARTUPINFOA;
 CreateResult: BOOL;
begin
 FillChar (si, SizeOf(si), 0);
 FillChar (pi, SizeOf(pi), 0);
 si.cb := SizeOf(si);
 CreateResult := CreateProcess (PChar(Image), PChar(Format("%s %s", [Image, Params]), nil, nil, false, 0, nil,
   nil, si, pi);
 if CreateResult then begin
   WaitForSingleObject (pi.hProcess, INFINITE);
// Дождались окончания
   CloseHandle (pi.hProcess);
 end;
end;


 
Jet ©   (2005-08-03 17:31) [8]

Никто не поможет с кодом?


 
Jet ©   (2005-08-04 18:00) [9]

Игорь, спасибо, помогло.



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

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

Наверх




Память: 0.48 MB
Время: 0.026 c
1-1126614631
Tor
2005-09-13 16:30
2005.10.02
Пауза без остановки процесса типа Sleep


1-1125922258
Barvetal
2005-09-05 16:10
2005.10.02
Посоветуйте библиотеку скинов (желательно анимированную)


4-1123576343
Po
2005-08-09 12:32
2005.10.02
WinAPI процесс CD-ROM`a


14-1126589798
Jeer
2005-09-13 09:36
2005.10.02
В Новом Орлеане врачи убивали людей


2-1124182782
bogdan
2005-08-16 12:59
2005.10.02
Закрасить картинку определенным цветом