我試圖監視任何進程的創建和終止,而無需管理員權限的! 我發現很多貼例子像這樣的:監控進程的創建和終止
// query every 2 seconds
string pol = "2";
WqlEventQuery queryString = new WqlEventQuery(
"SELECT *" +
" FROM __InstanceOperationEvent " +
"WITHIN " + pol +
" WHERE TargetInstance ISA 'Win32_Process' ");
// You could replace the dot by a machine name to watch to that machine
ManagementScope scope = new ManagementScope(@"\\.\root\CIMV2");
// create the watcher and start to listen
watcher = new ManagementEventWatcher(scope, queryString);
watcher.EventArrived += OnEventArrived;
watcher.Start();
如果我只收到我可以確定某個進程啓動或停止的事件,但如果我嘗試消耗OnEventArrived
的e.NewEvent.Property["ProcessName"].Value
我在遇到麻煩訪問權限。
我的問題是現在: 爲什麼我能收到一般的創建和終止的信息,但如果我想獲得細節出了大事我成爲制約?
我可以使用Process.GetProcesses()
和比較前面任何價值,我得到我自己的信息,這樣我就可以無論如何得到這個信息。這似乎並不像我應該需要訪問權限。
Powershell腳本將是相當多的選項,而不是C#用於監控進程... – JDavila
@JDavila是的,如果您沒有客戶希望在應用程序中看到他想要監控的所有進程的綠色小標誌; ) – GreenEyedAndy