【问题标题】:Close Processes in "Check for running processes" does not work correctly on Windows“检查正在运行的进程”中的关闭进程在 Windows 上无法正常工作
【发布时间】:2018-04-16 22:49:43
【问题描述】:

关闭正在运行的进程有一点问题(没有 ui)。

我们正在编写一个没有(主)用户界面的应用程序,除了用于打开首选项的托盘图标。

我在安装过程中添加了带有“允许软关闭和终止”选项的“检查正在运行的进程”。

如果我尝试安装我的应用程序的新版本,我会收到消息,说我的应用程序有一个正在运行的进程,但是如果我点击“关闭进程”,什么也没有发生,只有在“终止进程”时才会发生被杀。

如果我打开应用程序的首选项窗口,该窗口将关闭,但进程本身不会关闭。

在 macOS 上运行正常。

我们正在使用最新的 install4J-6 版本。

我必须设置另一个选项还是必须启动一个脚本来终止我的应用程序?

谢谢:)

【问题讨论】:

    标签: java-8 install4j


    【解决方案1】:

    不保证软关闭会成功。在 Windows 上它是这样工作的:

    • “软关闭”将WM_CLOSE 消息发布到进程的所有可见窗口。如果应用程序不配合,例如正在显示模式对话框,这可能不起作用。

    • “Terminate”对进程进行操作并调用TerminateProcess,无需应用程序合作即可成功。

    【讨论】:

    • 除了使用“允许终止”之外,还有其他方法可以软关闭正在运行的(后台)进程吗?
    • 您可以在“运行脚本”操作中使用 WinProcesses API:ej-technologies.com/resources/install4j/help/api/com/install4j/…
    • 不幸的是,我在 API 中没有发现任何额外的东西。 @IngoKegel 是否有机会添加一个选项以将SIGINT 发送到流程中?
    • 这是一个用于 Windows 进程的 API。 Windows 不支持 POSIX 信号,并且没有 Windows API 可以向没有控制台的进程发送“CTRL-C”信号。
    猜你喜欢
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 2018-01-16
    • 2016-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    相关资源
    最近更新 更多