У меня есть служба Windows, написанная на Delphi, которая запускает несколько программ.Delphi - изящное закрытие созданного процесса в сервисе. (используя tprocess/createProcess)
Остановить службу, я хочу также закрыть эти программы. Когда служба была изначально написана, это сработало хорошо, но я думаю, что я обновил компонент tProcess и теперь - подчиненные программы не закрываются.
in tProcess - Вот код, который запускает новые процессы.
if CreateProcess(nil , PChar(FProcess.Command) , nil , nil , False ,
NORMAL_PRIORITY_CLASS , nil , Directory ,
StartupInfo , ProcessInfo) then
begin
if FProcess.Wait then
begin
WaitForSingleObject(ProcessInfo.hProcess , Infinite);
GetExitCodeProcess(ProcessInfo.hProcess , ExitCode);
if Assigned(FProcess.FOnFinished) then
FProcess.FOnFinished(FProcess , ExitCode);
end;
CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread);
end;
Каждый из исполняемых файлов, вызываемых этим, представляет собой программы Windows GUI (с кнопкой закрытия вверху).
Когда я останавливаю службу, я также хочу остановить (не убивать) программы, которые я запускал с помощью процедуры createProcess.
Как вы это сделаете?
начала не проблема, верно? Итак, что вы делаете или TProcess, чтобы закрыть программы? –