Java 8 关闭“中的进程”;检查正在运行的进程”;无法在Windows上正常工作

Java 8 关闭“中的进程”;检查正在运行的进程”;无法在Windows上正常工作,java-8,install4j,Java 8,Install4j,关闭正在运行的进程(没有ui)有一个小问题 我们正在编写一个应用程序,除了用于打开首选项的托盘图标外,它没有(主)ui 我在安装过程中添加了一个带有“允许软关闭和终止”选项的“检查正在运行的进程” 如果我尝试安装我的应用程序的新版本,我会收到一条消息,我的应用程序有一个正在运行的进程,但是如果我单击“关闭进程”,什么也不会发生,只有在“终止进程”时,它才会被终止 如果打开应用程序的“首选项”窗口,窗口将关闭,但进程本身不会关闭 在macOS上运行良好 我们正在使用最新的install4J-6版本

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

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

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

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

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

在macOS上运行良好

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

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


谢谢:)

软关闭不一定成功。在Windows上,它的工作原理如下:

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

  • “Terminate”对进程进行操作并调用
    TerminateProcess
    ,该操作在没有应用程序配合的情况下成功


除了使用“允许终止”之外,还有其他方法软关闭正在运行的(后台)进程吗?您可以在“运行脚本”操作中使用WinProcesss API:不幸的是,我在API中没有发现任何额外的内容@IngoKegel是否有可能添加一个选项来向进程发送
SIGINT
?这是一个用于Windows进程的API。Windows不支持POSIX信号,并且没有Windows API向没有控制台的进程发送“CTRL-C”信号。