关于如何监控进程,有一个非常好的clear answer here。它就像一个护身符..。除非它必须在提升模式下运行,这在我的程序上下文中是绝对不能选择的。
我需要做的基本上是监控所有新进程,并将它们与预先确定的列表进行比较。我想这样做,而不是简单地使用秒表和轮询任何新的进程。
有人知道不需要以管理员身份运行的事件会引发类似于ManagementEventWatcher的事件吗?
谢谢!
发布于 2019-11-07 04:40:29
我遇到了与OP相同的问题,但通过提供特定的查询,我成功地以非管理员身份使用了ManagementEventWatcher:
string queryString = "SELECT * FROM __InstanceCreationEvent WITHIN .025 WHERE TargetInstance ISA 'Win32_Process'";
ManagementEventWatcher managementEventWatcher = new ManagementEventWatcher(@"\\.\root\CIMV2", queryString);
managementEventWatcher.EventArrived += ProcessStartEventArrived;
managementEventWatcher.Start();WITHIN是要通知的时间范围。
停止的方式是相同的,但使用__InstanceDeletionEvent
string queryString = "SELECT * FROM __InstanceDeletionEvent WITHIN .025 WHERE TargetInstance ISA 'Win32_Process'";https://stackoverflow.com/questions/38963224
复制相似问题