【发布时间】:2011-12-08 13:44:32
【问题描述】:
是的,就是well documented如何获取你的应用程序的exe文件名,看看它是否正在运行。当所讨论的应用程序是 java 应用程序时,正在运行的 exe 将始终是 java.exe,因此此方法一无所获,因为当前可能正在运行任意数量的 java 应用程序,所有这些都是使用 java.exe 启动的。 每个传递的命令行参数都会有所不同,包括主类名。
我需要知道 java.exe 的命令行参数,这样我才能知道只有 java.exe MyProgram 会被终止。
我如何在 NSIS 中做到这一点?
【问题讨论】:
-
很遗憾你没有选择JWS来启动应用程序。它内置了
SingleInstanceService。"SingleInstanceService确保只有一个版本的应用程序在任何给定时刻都显示在屏幕上。如果用户在某个实例已显示在屏幕上时打开程序,则会调用应用程序的通知方法,开发人员可以决定需要采取什么操作。"当然,JWS 也适用于有 JRE 的 MacOS 和 *nix 风格。 -
我不能这样做,因为正在安装的应用程序很大,而且还包括一些要运行的 Windows 软件(生物识别硬件驱动程序)。