У меня есть 2 программы в Delphi - служба и некоторые дочерние процессы, которые могут выполняться в любом сеансе пользователя (они начинаются, когда служба запускается и должна закрываться, когда служба останавливается).
Когда служба прекращается, я должен безопасно закрыть дочерние приложения, чтобы они уловляли события formClose / FormDestroy.
Служба не может использовать настольную связь, поэтому она не может отправлять эти WM-процессы, такие как WM_Close и т. Д.
Вызов TerminateProcess не приводит к возникновению событий formClose / FormDestroy в моих дочерних процессах ...
Итак, какой способ завершения дочернего процесса можно использовать здесь?
В настоящее время единственная идея, которую мы имеем, - запустить taskkill.exe / im process.exe в каждом сеансе пользователя - это как-то заставляет убитый процесс запускать formClose / FormDestroy. Как это работает? Просто отправив WM_CLOSE?
delphi,winapi,delphi-xe8,