![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отловить момент закрытия консольного приложения?
Jet © (2005-08-03 16:05:00)Приветствую,
Как отловить момент закрытия консольного приложения, запущенного под Windows? Ситуация такая: мне нужно во время программы выполнить консольное приложение, а после ее завершения продолжить работу программы. Для Windows приложений сделать такое не проблема (на примере калькулятора):
--
...
Handle := WinExec('calc.exe',SW_SHOW);
Handle := FindWindow('SciCalc', Nil);
while (FindWindow('SciCalc',NIL) <> 0) do
begin
sleep(1000);
end;
...
--
Для Windows приложений получилось, подскажите как сделать такое же для консольных приложений, с учетом того, что запущено не одно консольное приложение?
Jet (2005-08-04 18:00:00) [1]Игорь, спасибо, помогло.
Jet (2005-08-03 17:31:00) [2]Никто не поможет с кодом?
Игорь Шевченко (2005-08-03 17:29:00) [3]
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;
Digitman (2005-08-03 16:52:00) [4]
> Игорь Шевченко
Держись.
Jet (2005-08-03 16:47:00) [5]А можете поделиться кодом, если не сложно?
Игорь Шевченко (2005-08-03 16:24:00) [6]Jet © (03.08.05 16:22) [3]
CreateProcess вместо WinExec - получишь ID процесса
Jet (2005-08-03 16:22:00) [7]А как получить имя приложения? У меня выдает только ConsoleWindowsClass.
Digitman (2005-08-03 16:11:00) [8]консольные Win-приложения есть такие же равноправные приложения, как и прочие Win-приложения
WinExec() - способ не лучший (если не сказать - не подходящий)
см. CreateProcess() + [Msg]WaitFor- ф-ции в составе WinAPI
Игорь Шевченко (2005-08-03 16:10:00) [9]CreateProcess + GetExitCodeProcess