.NET 2.0 Windows デスクトップ アプリケーション (タイムシート) を開発し、それにガジェット インターフェイスを追加したいと考えています (アプリが非表示で実行され、ガジェットを介して制御されるようにするため)。
ガジェットをアプリと通信させる最も簡単な方法は何ですか?
私が持っていたアイデアは、アプリ内に組み込みの Web サーバーを持ち、ガジェット コントロールが ajax を使用してアプリと通信することでした。しかし、もっと簡単な解決策があることを願っています。
.NET 2.0 Windows デスクトップ アプリケーション (タイムシート) を開発し、それにガジェット インターフェイスを追加したいと考えています (アプリが非表示で実行され、ガジェットを介して制御されるようにするため)。
ガジェットをアプリと通信させる最も簡単な方法は何ですか?
私が持っていたアイデアは、アプリ内に組み込みの Web サーバーを持ち、ガジェット コントロールが ajax を使用してアプリと通信することでした。しかし、もっと簡単な解決策があることを願っています。
ガジェットのActiveXコントロールの1つでwin32APIを使用して、同じガジェットの他のインスタンスと通信します。残念ながら、コードを提供することはできません(権限がなく、.netのものを記述していないため)が、サーバーとしてウィンドウ(この場合はアプリケーションウィンドウ)を使用し、クライアントとしてガジェットActiveXコントロールを使用し、SendMessage関数を使用します。
WindowsデスクトップガジェットでCOM相互運用機能を使用する例は、http://www.codeproject.com/KB/gadgets/GadgetInterop.aspxで確認できます。
注意:相互運用機能アセンブリがガジェットディレクトリではなくアプリケーションのディレクトリにあることを確認してください。そうしないと、ガジェットを更新/アンインストールするときに問題が発生します。
ガジェットとアプリがどのようなテクノロジで作成されたかを特定していないため、回答するのは困難です。.NET を使用できると仮定すると、名前付きパイプ バインドを使用した WCF は非常に単純になります。ほんの数行のコードでセットアップできます。