是的,它的well documented如何獲取應用程序的exe文件的名稱並查看它是否正在運行。當有問題的應用程序是一個Java應用程序時,正在運行的exe文件將始終是java.exe,所以這種方法在它的表面上是平坦的,因爲可能有許多java應用程序當前正在運行,所有這些應用程序都是用java.exe啓動的。 每個傳遞的命令行參數都會有所不同,包括主類名稱。從NSIS中檢測已在運行的Java應用程序
我需要知道java.exe的命令行參數,所以我可以知道只有一個說java.exe MyProgram將被終止。
我該如何在NSIS中做到這一點?
http://stackoverflow.com/questions/62418/knowing-which-java-exe-process-to-kill-on-a-windows-機器 –
很遺憾你沒有選擇[JWS](http://stackoverflow.com/tags/java-web-start/info)來啓動應用程序,它有['SingleInstanceService'](http:/ /內置的* /「* SingleInstanceService'確保在任何給定的時刻在屏幕上只有一個應用程序版本。如果用戶在已經有實例的情況下打開程序在屏幕上,應用程序的通知方法被調用,並且開發人員可以決定需要採取的操作。「*當然,JWS也適用於MacOS&* nix風格,因爲它們有一個JRE。 –
我不能這樣做,因爲安裝的應用程序非常龐大,並且還包含一些可運行的Windows軟件(生物識別硬件驅動程序)。 – Rex