C# 倾听新流程:需要简单的解释

C# 倾听新流程:需要简单的解释,c#,wmi,C#,Wmi,只是需要一点解释 我指的是关于倾听流程的问题。我还收到了评论中提到的“拒绝访问”错误,但不确定如何作为示例的管理员运行WMI服务。有人请给我指一下正确的方向 这是我到目前为止所拥有的 startWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")); startWatch.EventArrived += new EventArrivedEventHandler(P

只是需要一点解释

我指的是关于倾听流程的问题。我还收到了评论中提到的“拒绝访问”错误,但不确定如何作为示例的管理员运行WMI服务。有人请给我指一下正确的方向

这是我到目前为止所拥有的

startWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace"));
startWatch.EventArrived += new EventArrivedEventHandler(ProcessEvent);
startWatch.Start();

private void ProcessEvent(object sender, EventArrivedEventArgs e)
{...}

看看这个网站。。还要确保您的计算机上实际安装了WMI。。我不是我机器上的管理员,我一直在使用WMI。我会在一秒钟内给你发送一个示例我会在30秒钟内发布一个工作代码示例显示你解决了管理权限问题吗?@GreenEyedAndy看看我接受的答案。当我把代码修改成类似于那个答案时,我想我发现我不需要为管理员权限而烦恼。最糟糕的情况是,您可以随时更改启动应用程序的权限,以要求管理员权限或使用运行方式。请查看此网站。。还要确保您的计算机上实际安装了WMI。。我不是我机器上的管理员,我一直在使用WMI。我会在一秒钟内给你发送一个示例我会在30秒钟内发布一个工作代码示例显示你解决了管理权限问题吗?@GreenEyedAndy看看我接受的答案。当我把代码修改成类似于那个答案时,我想我发现我不需要为管理员权限而烦恼。最糟糕的情况是,您可以随时更改启动应用程序的权限,以要求管理员权限或使用运行方式。太棒了,谢谢。此外,我最终使用了一个单独的线程,不需要你在修改时提到的管理员权限。感谢您的链接和帮助:)@MethodMan:如何在
C++
中执行相同的操作?@Jackz这是一个C#示例,如果您需要知道如何在
C++
中执行相同的操作,我建议查看您的开发工具,看看它是否支持
ManagementObjectSearcher
以及
System.Management
这是一个MSDN链接选择
C++选项卡
或在谷歌搜索@MethodMan:I正在使用
VS2010
进行开发。不要认为它支持
System.Management
@Jackz您查看了msdn文档了吗。。我认为你需要做更多的研究——这里的C++检查-很棒,谢谢。此外,我最终使用了一个单独的线程,不需要你在修改时提到的管理员权限。感谢您的链接和帮助:)@MethodMan:如何在
C++
中执行相同的操作?@Jackz这是一个C#示例,如果您需要知道如何在
C++
中执行相同的操作,我建议查看您的开发工具,看看它是否支持
ManagementObjectSearcher
以及
System.Management
这是一个MSDN链接选择
C++选项卡
或在谷歌搜索@MethodMan:I正在使用
VS2010
进行开发。不要认为它支持
System.Management
@Jackz您查看了msdn文档了吗。。我认为你需要做更多的研究——这里的C++检查
ManagementScope theScope = new ManagementScope("\\\\ComputerName\\root\\cimv2");
ObjectQuery theQuery = new ObjectQuery("SELECT * FROM Win32_ProcessStartTrace");
ManagementObjectSearcher theSearcher = new ManagementObjectSearcher(theScope, theQuery);
ManagementObjectCollection theCollection = theSearcher.Get();
foreach (ManagementObject theCurObject in theCollection)
{
  MessageBox.Show(theCurObject["whatever properties you are looking for"].ToString());
}