2017-02-10 9 views
0

3Dプロセスをバックグラウンドで記録するプログラムを構築しています。それらのうちのいくつかは管理者として実行されており、それらを取得するために昇格して実行する必要があります。私はp/invokeでpsapi EnumProcessesを使用しています。私の質問は以下のようになります。どのように私は建築家、このプログラムを持っている:スタートアップとプロセス間通信で稼働中

  • 開始ユーザログインに昇格権限を持つ
  • 取得プロセス
  • てきたUIとTaskIcon存在
  • /シャットダウン私を再開できる
  • プログラム

私は、少なくとも方法の中で、それは何の解決策もないように思われるので、表示されない場合がありますTaskSchedulerソリューションに見えたが、UIとタスクバーのアイコンを起動すると問題があると思われますuggested。

私は人々がタスク/サービスとして実行し、それと通信するために別のプロセスを推奨していることが分かりました。これがより良い推奨ソリューションであれば、C#の他のプロセスと通信するための推奨される方法は何ですか?私は人々が名前付きパイプとRPCを推奨するのを見てきました。

要するに私の質問は、これを適切な「.NET(4.6)/ C#on Windows 10」の方法でどのようにアーキテクチャするのでしょうか?

答えて

0

いくつかのアイデア:
スタートユーザログイン後のプログラム:昇格権
は、WindowsスタートアップフォルダやレジストリHKEY_CURRENT_USER \ソフトウェアを探る必要があります\ Microsoft \ Windows \ CurrentVersion \ Runを
取得プロセス
チェックthis;
UIおよび再起動してTaskIcon /はエイブル/シャットダウン私のプログラム
私は、システムトレイに始まり、あなただけの信号の移行が必要な場合は、より複雑なデータ移行やEventWaitHandleのためにWCFを使用してプロセスモニタと通信UIアプリケーションのために行くだろう。

前述したように、私は2つのアプリケーションのために行くでしょう:あなたのモニターサービス(UIなし)とUIを持つクライアントアプリケーションとして機能する1。これらのプロセス間の通信はニーズに大きく左右されますが、WCFは複雑なデータやEventWaitHandleに適しています。