저는 여러 프로그램을 실행하는 Delphi로 작성된 Windows 서비스를 보유하고 있습니다.Delphi - 서비스에서 생성 된 프로세스를 정상적으로 종료합니다. (tprocess/createProcess 사용)
On 서비스를 중지 할 때도이 프로그램을 닫고 싶습니다. 서비스가 원래 작성되었을 때이 작업은 정상적으로 수행되었지만 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가 프로그램을 닫으려면 어떻게해야합니까? –