2012-01-16 39 views
2

这里是必须将进程按路径返回到可执行文件的方法。 但是,当我尝试调用此方法时,我有一个异常Win32Exception“访问被拒绝”。 那么该怎么做对不对?按执行路径获取进程

private static List<Process> GetProcessByFilename(string filename) 
     { 
      List<Process> processes = new List<Process>(); 

      foreach (var process in Process.GetProcesses()) 
      { 
       if (process.MainModule.FileName == filename) 
       { 
        processes.Add(process); 
       } 
      } 
      return processes; 
     } 

回答

4

试图让核心系统进程的MainModule(见comments on MSDN)时,您将获得Win32Exception。你应该处理。

1

正如消息所述,您有“访问被拒绝”问题。有可能您的Windows Credential没有必要的权限来完成所需的Win32调用..

1

这个异常究竟在哪里抛出?首先,你不允许查询所有的Win32进程路径,有些没有,最后你可能没有足够的访问权限运行。

要知道哪些适用于您的情况,我需要知道您的代码路径中的哪个位置获取了异常以及哪个进程(如果不是全部)引发异常。