私はアプリケーション(C#2.0)に取り組んでいます。その中に単一のインスタンスを実装しました。すべて順調。アプリケーションを再度実行すると、「インスタンスはすでに実行されています」というメッセージボックスが表示されます。
実際、私はメッセージボックスを通してメッセージを表示したくありません。
すでに実行中のインスタンスのバルーンチップを使用してこのメッセージを表示したい(システムトレイに通知アイコンがあります)。
どうすればこれを達成できますか?
前もって感謝します。
私はアプリケーション(C#2.0)に取り組んでいます。その中に単一のインスタンスを実装しました。すべて順調。アプリケーションを再度実行すると、「インスタンスはすでに実行されています」というメッセージボックスが表示されます。
実際、私はメッセージボックスを通してメッセージを表示したくありません。
すでに実行中のインスタンスのバルーンチップを使用してこのメッセージを表示したい(システムトレイに通知アイコンがあります)。
どうすればこれを達成できますか?
前もって感謝します。
メッセージボックスを表示する必要があることを他のインスタンスに通知するには、プロセス間通信の形式が必要です。
この場合、既存のインスタンスにメッセージを表示するように指示するよりも1つ上手く行くことができ、代わりにメインウィンドウを復元するように指示します(つまり、「最小化解除」)。
アプリ内でWCFサービスを使用できます。
2番目のアプリはNetPipeを介してそれに接続し、メソッドを呼び出して閉じます。
最初のアプリが電話を受け、バルーン通知をポップアップします
単一のインスタンスを実装し、2番目のインスタンスが開始されたかどうかを最初のインスタンスに通知する最も簡単な方法は、すでに.Netに実装されています。次のリンクをご覧ください。
ツールの無料セットであるCodeFluentランタイムは、単一インスタンスアプリケーションを実装するためのSingleInstanceクラスを提供します。
WndProcメソッドをオーバーライドして、通知をポップアップするだけです(バルーンのヒント)。