簡體   English   中英

在啟動和進程間通信方面提升運行

[英]Running Elevated on Startup & Inter Process Communication

我正在構建一個在后台記錄3D流程的程序。 其中一些正在以管理員身份運行,我需要以更高的權限運行以捕獲這些。 我正在使用p / invoke的psapi EnumProcesses。 我現在的問題是:如何構建該程序以使其具有以下功能:

  • 從用戶登錄開始
  • 捕獲權限較高的過程
  • 有UI和TaskIcon
  • 能夠重新啟動/關閉我的程序

我查看了TaskScheduler解決方案,但是啟動UI似乎存在問題,並且TaskBar圖標可能不會顯示,因此,至少以建議的方式,這似乎不是解決方案。

我見過人們建議將一個單獨的過程作為任務/服務運行,然后與之通信。 如果這是一個更好且推薦的解決方案,那么與C#中的其他進程進行通信的推薦方法是什么? 我見過有人推薦命名管道和RPC。

因此,總而言之,我的問題是,如何正確構建“ Windows 10上的.NET(4.6)/ C#”方式?

一些想法:
用戶登錄后啟動程序:
您應該瀏覽Windows啟動文件夾或注冊表HKEY_CURRENT_USER \\ SOFTWARE \\ Microsoft \\ Windows \\ CurrentVersion \\ Run
捕獲權限較高的過程
檢查這個 ;
UI和TaskIcon /可以重新啟動/關閉程序
我將選擇一個從systray中啟動並使用WCF與Process Monitor進行通信的UI應用程序,以進行更復雜的數據遷移或EventWaitHandle(如果您只需要信號遷移)。

如前所述,我將使用2個應用程序:1個充當監視器服務(無UI)和帶UI的客戶端應用程序。 這些過程之間的通信在很大程度上取決於您的需求,但是對於復雜數據或僅用於發送/接收信號的EventWaitHandle,WCF可能是一個不錯的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM