2017-02-10 57 views
0

我正在構建一個程序,在後臺記錄3D進程。其中一些以管理員身份運行,我需要運行提升來捕獲這些。我使用p/invoke使用psapi EnumProcesses。現在我的問題是:我怎麼建築師這個有程序:在啓動和進程間通信時運行提升

  • 啓動用戶登錄
  • 捕獲流程以提升權限
  • 有無UI和TaskIcon目前
  • 能夠重新啓動/關機我程序

我看着TaskScheduler解決方案,但似乎有推出用戶界面和任務欄圖標可能不會出現問題,因此這似乎是無解,至少在地那個uggested。

我見過有人推薦一個單獨的進程作爲任務/服務運行,然後與它通信。如果這是一個更好的建議解決方案,那麼與C#中的其他進程進行通信的推薦方式是什麼?我看到有人推薦命名管道和RPC。所以總的來說,我的問題是,我如何構建這個適當的「.NET(4.6)/ C#在Windows 10上」的方式?

回答

0

一些想法:
入門用戶登錄後的程序:
您應該探索Windows的啓動文件夾或註冊表HKEY_CURRENT_USER \ SOFTWARE \微軟\的Windows \ CurrentVersion \ Run中以提升權限
拍攝過程
檢查this;
UI和TaskIcon /能夠重新啓動/關機我的程序
我會去啓動在系統托盤,並使用WCF進行更復雜的數據遷移或的EventWaitHandle如果你只需要信號遷移進程監視器通信的用戶界面應用程序。

如前所述,我會去2個應用程序:1充當您的顯示器服務(無UI)和一個帶UI的客戶端應用程序。這些進程之間的通信很大程度上取決於您的需求,但WCF可能是複雜數據或EventWaitHandle僅用於發送/接收信號的理想選擇。

相關問題