5

私はJavaで作成されたデスクトップアプリケーションで作業しています。アプリケーションのWindowsバージョン(Windows OSで実行するため)で作業しています。アプリケーションを実行すると、systemtrayを使用してデスクトップにトレイアイコンが作成されます。

SystemTray tray = SystemTray.getSystemTray();

アプリケーションのメインクラスで作成しているシステムトレイの単一インスタンスを作成しています。

アプリケーション用にexeを作成しています。私の問題は、アプリケーションのexeファイルを実行しているときに、毎回トレイアイコンが作成されることです。

アプリケーションで、デスクトップに存在し、サービスとして実行されているトレイアイコンを1つだけにしたい。このアイコンは、アプリケーションがアンインストールされたときにのみ削除されます。バックグラウンドでサービスとして実行する必要があります。

アプリケーションをサービスとして実行するのに役立つ方法が得られず、バックグラウンドで実行されているインスタンスは1つだけである必要があります。

トレイアイコンをサービスとして作成してアプリケーションを実行したいので、単一のインスタンスが存在する必要があります。この号で私を案内してください。

事前にすべての貴重な提案をありがとう。

4

3 に答える 3

2

Mudassirが言ったように、プログラムを起動するときに、アプリの別の実行中のインスタンスを見つけようとするチェックを追加する必要があります。これは、起動時に特定のファイルを作成し、終了時にそれを削除することで実行できます。アプリの起動時にファイルがすでに存在する場合は、別のインスタンスが実行されていることを意味します。プロセス間通信を使用することもできますが、単純なファイルよりも困難です。

「サービス」の部分では、起動時にメインウィンドウを非表示にして、アプリがWindowsサービスであるかのように実行されるようにすることができます。

于 2010-11-08T13:17:13.943 に答える
1

アプリケーションをシングルインスタンスにします。また、Javaで.EXEファイルを作成する方法を教えてください。

于 2010-11-08T12:02:17.140 に答える
1

トレイアイコンを表示するには、アプリが実行されている必要があります。トレイアイコンが2回(またはそれ以上)表示される場合は、アプリケーションが複数回実行されます。これを自分でチェックする必要があります。

通常、これらはWindowsデスクトップにアクセスできないため、アプリをWindowsサービスとして実行する必要はありません。

于 2010-11-08T12:02:29.137 に答える