はい、アプリケーションのexeファイルの名前を取得し、実行中であるかどうかを確認する方法はwell documentedです。問題のアプリケーションがJavaアプリケーションである場合、実行中のexeは常にjava.exeになるので、現在実行されているJavaアプリケーションがいくつでも存在する可能性があるため、このメソッドはフラットになります。 メインクラス名を含む、渡されたコマンドラインパラメータはそれぞれ異なります。NSISから既に実行中のJavaアプリケーションを検出する
java.exeのコマンドラインパラメータを知る必要があるので、java.exe MyProgramという名前のものだけが終了することがわかります。
NSISでどうすればいいですか?
http://stackoverflow.com/questions/62418/knowing-which-java-exe-process-to-kill-on-a-windows-:ここに私の
NSIS
インストーラの1から完全FindWindow
機能ですmachine –アプリを起動するために[JWS](http://stackoverflow.com/tags/java-web-start/info)を選択していないのは残念ですが、['SingleInstanceService'](http: /pscode.org/jws/api.html#sis)が組み込まれています。* "SingleInstanceService'は、任意の時点で画面上にアプリケーションのバージョンが1つしか存在しないことを保証します。アプリケーションの通知方法が呼び出され、開発者はどのような行動を取る必要があるかを判断します。 "*もちろん、JWSはMacOSおよび* nixのフレーバーでも動作します。 JRE。 –
インストールされているアプリケーションが大量で実行するためにいくつかのWindowsソフトウェア(バイオメトリックハードウェアドライバ)が含まれているため、私はそれを行うことはできません。 – Rex