尝试在正在运行的进程中查询模块时访问被拒绝的异常

时间:2016-06-24 14:30:46

标签: c# .net exception process

我正在尝试获取使用.NET的正在运行的进程列表。我使用here发布的问题来做这件事。

using (Process p = Process.GetProcessById(pid))
{
     var modules = p.Modules.Cast<ProcessModule>().Where(
                    m => m.ModuleName.StartsWith("mscor", StringComparison.InvariantCultureIgnoreCase));
     if (modules.Any())
         Console.WriteLine(string.Format("{0} used .NET", pid));
}

我以管理员身份运行此程序。但是对于某些程序(例如,软件保护程序),我得到以下异常。

Unhandled Exception: System.ComponentModel.Win32Exception: Access is denied
   at System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited)
   at System.Diagnostics.NtProcessManager.GetModuleInfos(Int32 processId, Boolean firstModuleOnly)
   at System.Diagnostics.ProcessManager.GetModuleInfos(Int32 processId)
   at System.Diagnostics.Process.get_Modules()
   at ConsoleApplication1.Program.Main(String[] args) in c:\Code\ConsoleApplication1\ConsoleApplication1\Program.cs:line 

我在这里做错了什么?

0 个答案:

没有答案