关闭 delphi 应用程序以及它打开的另一个应用程序

Posted

技术标签:

【中文标题】关闭 delphi 应用程序以及它打开的另一个应用程序【英文标题】:Closing delphi app along with another application it opened 【发布时间】:2012-04-15 19:19:18 【问题描述】:

我有一个应用程序,它调用了用 delphi 编写的其他几个 .exe 组件。我问的问题是,是否可以关闭 delphi 应用程序及其打开的所有应用程序(单击“[x]”按钮时)?

另外,很明显,我已经学会了如何打开和关闭外部应用程序,但在 Windows Media Player 等几种情况下,它似乎不起作用......谁能给我一些解决方案?

提前致谢

【问题讨论】:

【参考方案1】:

您可以使用Job Objects,阅读这些函数CreateJobObjectAssignProcessToJobObject 的文档。

作业对象允许将进程组作为一个单元进行管理.... 示例包括强制执行限制,例如工作集大小和流程 优先级或终止与作业相关的所有进程

【讨论】:

【参考方案2】:

如果您跟踪您打开的应用程序,您可以在 Delphi 应用程序主窗体的 OnClose 事件中向每个人的窗口句柄发布 WM_QUIT 消息。

媒体播放器也应该这样,但如果你不提供任何有关如何打开它的信息,就很难说。

【讨论】:

啊,我明白了,我很抱歉......它是使用 ShellExecute 打开的,但我想关闭在 delphi 应用程序(即表单)使用“red little”关闭的同时打开的应用程序右上角的十字按钮'按钮...可以吗? 你可以告诉他们退出(我已经复制了我的答案;最好是 WM_QUIT 而不是 WM_CLOSE)。应用程序需要关闭多长时间,因此它们可能不会在完全相同的时刻关闭。

以上是关于关闭 delphi 应用程序以及它打开的另一个应用程序的主要内容,如果未能解决你的问题,请参考以下文章

delphi exe异常关闭,怎么获取异常关闭状态

Delphi 7,使用FastMM4获取应用路径并打开应用

如何在Delphi中开发使用多显示器的应用程序

在Delphi中开发使用多显示器的应用程序

为啥电脑好多应用程序(firefox、delphi)背景全都跟窗口背景一样了,个别字体变大,关闭窗口的x也不显

将 Delphi 7 应用程序移植到 Delphi 2007 后性能下降 [关闭]