Текущий архив: 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.049 c