按执行路径获取进程

时间:2012-01-16 07:57:31

标签: c# process

这是必须通过路径返回进程到可执行文件的方法。 但是,当我尝试调用此方法时,我有一个异常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;
        }

3 个答案:

答案 0 :(得分:4)

尝试获取Win32Exception核心系统进程时,您将获得MainModule(请参阅comments on MSDN)。你应该处理它。

答案 1 :(得分:1)

如消息所示,您有“拒绝访问”问题。您的Windows Credential可能没有必要的权限来进行所需的Win32调用..

答案 2 :(得分:1)

这个异常到底在哪里?首先,不允许您查询所有Win32进程路径,有些没有,最后您可能运行时访问权限不足。

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