我试图监视任何进程的创建和终止,而无需管理员权限的! 我发现很多贴例子像这样的:监控进程的创建和终止
// 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