Закрытие приложения delphi вместе с другим открытым приложением

У меня есть приложение, которое вызывает несколько других компонентов .exe, написанных на Delphi. Вопрос, который я задаю, заключается в том, можно ли закрыть приложение delphi вместе со всеми открытыми приложениями (при нажатии кнопки «[x]»)?

Кроме того, очевидно, я научился открывать и закрывать внешние приложения, но в некоторых случаях, например, в проигрывателе Windows Media, он просто не работает ... может ли кто-нибудь дать мне какое-то решение?

заранее спасибо


person Adam1337    schedule 02.04.2012    source источник


Ответы (2)


Если вы отслеживаете открываемые вами приложения, вы можете опубликовать сообщение WM_QUIT для дескриптора окна каждого из них в событии OnClose главной формы вашего приложения Delphi.

То же самое должно работать и с Media Player, но трудно сказать, когда вы не даете никакой информации о том, как вы его открыли.

person Ken White    schedule 02.04.2012
comment
ах, я вижу, мои извинения ... он открывается с помощью ShellExecute, но я хочу закрыть приложение, открытое в тот же момент, когда приложение delphi (то есть форма) закрылось с помощью «красной крестообразной кнопки в правом верхнем углу» кнопка... это возможно? - person Adam1337; 02.04.2012
comment
Вы можете сказать им, чтобы они ушли (я сочинил свой ответ, лучше WM_QUIT вместо WM_CLOSE). Закрытие приложения займет столько времени, сколько потребуется, поэтому они могут не закрыться в один и тот же момент. - person Ken White; 03.04.2012

Вы можете использовать Job Objects , прочитать документацию по эти функции CreateJobObject и AssignProcessToJobObject.

Объект задания позволяет управлять группами процессов как единым целым... Примеры включают принудительное применение ограничений, таких как размер рабочего набора и приоритет процесса, или завершение всех процессов, связанных с заданием.

person RRUZ    schedule 03.04.2012