0

システム トレイ アプリケーション (C#、Windows フォーム) があります。この実行可能ファイルの隣には、別の実行可能ファイル (C# で記述) があり、システム トレイ アプリケーションにメッセージ (できれば文字列形式) を送信する必要があります。

  • このために Windows サービス全体をインストールしたくありません。
  • クライアントサーバーではありません。すべて同じ PC 上で行われます。ソケットと組み合わせてリスナーを使用するのは面倒で、独自のファイアウォールによってブロックされることさえあると思います。
  • メイン関数のパラメーターを処理できるコンソール アプリケーションに似たものを探しています。今回は、既に実行中の Windows フォーム アプリケーションの場合のみです。
  • システムトレイアプリケーションで、他の実行可能ファイルから呼び出すことができるグローバル関数/手順を作成することはできますか? 「global void PerformAction(params here){..}」のように? これが最善の解決策のようですが、.NET 4 がこれをサポートしているかどうかはわかりません。

例: 実行可能ファイル X1.exe は、メッセージ "perform action [A] param [B]" をシステム トレイ アプリケーションに送信し、終了します。システム トレイ アプリケーションはその文字列を読み取り、関数 A をパラメーター "B" で呼び出す必要があることを認識します。

しかし、どうすればメッセージを送受信できますか?

ありがとうございました。

4

5 に答える 5

1

ローカル通信では、匿名パイプを試すことができます。

リンク: http://msdn.microsoft.com/en-us/library/bb546102.aspx

リモート メソッドの呼び出しも確認できます。次に例を示します。

http://www.codeproject.com/Articles/14791/NET-Remoting-with-an-easy-example

于 2012-09-06T13:57:30.447 に答える
0

セルフホストのAsp.NetWebAPIを使用した場合は、そのアプリケーションへの単純なhttp呼び出しを使用してメソッドを実行できます。これは、フィドラーまたはhttpリクエストを送信できるものを使用してテストできるので便利です。

例のリンクは次のとおりです。 http://www.asp.net/web-api/overview/hosting-aspnet-web-api/self-host-a-web-api

于 2012-09-06T13:46:40.627 に答える
0

私にとって最も簡単な解決策は、Steve B が述べたように、WCF サービス (トレイ アプリケーション内) を使用することでした。このチュートリアルを使用しました: http://www.switchonthecode.com/tutorials/wcf-tutorial-basic-interprocess-communication .

パイピングについては聞いたことがありませんが、上記のリンクはパイピング付きの WCF サービスを使用していると思います。それは私の問題を解決しました。

提供された多くのソリューションに感謝します(そして非常に高速です)。

于 2012-09-06T17:01:18.557 に答える
0

ネイティブ アプリケーションで使用できる非常に便利な方法、つまりウィンドウ メッセージがあります。少しハックすれば、.net アプリケーションでも使用できます。

参考にしていただければと思います

SendMessage および SendMessageA API 関数。ただし、安全でないコードを作成する必要がある場合があります。

于 2012-09-06T13:35:34.637 に答える