3

アプリケーションが現在実行されていないことを確認したいインストール プログラムがあります。もしそうなら、私はそれを閉じたいと思います(アプリは終了時にデータを保存する必要があるため、強制終了しません)。追加の問題は、アプリケーションのウィンドウが非表示になっている (代わりにトレイ アイコンが表示されている) ため、Process.MainWindowHandle は常に 0 です。

アプリケーションを閉じるように通知するにはどうすればよいですか? (ウィンドウではなく) アプリケーションに直接メッセージを送信できますか?

どうぞよろしくお願いいたします。グレゴール

4

4 に答える 4

2

名前付きパイプという別のものをミックスに投入するだけです。

于 2010-09-24T08:09:29.410 に答える
1

おそらく WINAPI を使用して、クラスまたはウィンドウ テキストによってウィンドウ ハンドル (非表示であっても) を見つけることができます。次に、Windows メッセージをアプリケーションに送信してアプリケーションを閉じます。

http://support.microsoft.com/kb/178893

于 2010-09-24T16:26:26.940 に答える
1

アプリを正常に閉じたい場合は、おそらく APP1 に特定のポートをリッスンさせ、そのポートにメッセージを送信させることができます。そのため、APP2 は APP1 ポートと、想定しているメッセージ パラメータを認識している必要があります。

また、ある種のメッセージ キュー (Windows にある、または SQL Service Broker のようなものを使用したい場合があります) を実装し、1 つの APP がキューにメッセージを送信し、もう 1 つの APP がキューから読み取ることもできます。

これもチェックしてください: http://msdn.microsoft.com/en-us/library/ms644950(VS.85).aspx

于 2010-09-24T06:37:01.820 に答える
0

PostThreadMessage WinAPI関数を(PInvoke経由で)使用できます。

于 2010-09-24T06:39:28.117 に答える