6

ユーザーがログオンする前に実行されるC#を使用して.netでWindowsサービスを作成しようとしています...ユーザーがログオンすると、システムトレイ(時計の横)にユーザーを示す記号が表示されますサービスが実行されていること..そのシンボルをダブルクリックすると、構成ユーティリティ(wpfで記述)がユーザーに表示され、ユーザーがサービスを構成したり、サービスからデータを読み取ったりできるようになります。

1つのアプリケーション内でこれを行う可能性はありますか?

助けてくれてありがとう!!!

4

2 に答える 2

4

いいえ、サービスは別のセッションで別のユーザーで実行されるため、1つのアプリケーションでこれを行うことはできません。2つのアプリケーションを作成し、両方の間に何らかの通信を実装する必要があります。

名前付きパイプを直接使用することはお勧めしませんが(Kieren Johnstoneが提案したように)、プロセス間通信用に設計され、通信テクノロジの実装の詳細をうまく抽象化したWCFを確認してください。WCFで適切に役立つリンクは次のとおりです:http ://www.switchonthecode.com/tutorials/wcf-tutorial-basic-interprocess-communication 。

よろしく、
オリバーハナッピ

于 2010-07-18T10:26:48.687 に答える
3

1つのアプリケーション内ではありません。サービスはセッション0で実行されます。こちらをご覧ください:

http://www.microsoft.com/whdc/system/sysinternals/session0changes.mspx

あなたの最善の策は、名前付きパイプを使用することです。ここを参照してください:

http://www.switchonthecode.com/tutorials/dotnet-35-adds-named-pipes-support

....またはメモリマップトファイル。ここを参照してください。

http://msdn.microsoft.com/en-us/library/dd997372.aspx

more-.NETtyの範囲内で、Remotingを使用することもできます。サービスと管理ユーティリティ間の通信を容易にするために、いくつかのインターフェイスまたはプロトコルを考え出す必要があります。ServiceControllerプロセスの開始/停止の管理が簡単になり、クラスを使用できます( MSDN ref)。

それが役立つことを願っています(そしてそれはあまり落胆しません)!

于 2010-07-18T10:08:29.403 に答える