我有一个用 Delphi 编写的 Windows 服务,它运行许多程序。
在停止服务时,我还想关闭这些程序。最初编写服务时,它工作得很好,但我想我已经更新了 tProcess 组件,现在 - 下级程序没有被关闭。
在 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 过程启动的程序。
你会怎么做?