Получить процессы по пути выполнения - PullRequest
2 голосов
/ 16 января 2012

Вот метод, который должен возвращать процессы по пути к исполняемому файлу.Но когда я пытаюсь вызвать этот метод, у меня возникает исключение 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 ]

4 голосов
/ 16 января 2012

Вы получите Win32Exception при попытке получить MainModule основных системных процессов (см. комментарии к MSDN ).Вы должны справиться с этим.

1 голос
/ 16 января 2012

Где именно выбрасывается это исключение?Во-первых, вам не разрешено запрашивать все пути процессов Win32, у некоторых их нет, и, наконец, вы можете работать с недостаточными правами доступа.

Чтобы узнать, что относится к вашему делу, мне нужно знать, где вваш путь к коду вы получите исключение, а также то, какой процесс (если не все) выдает исключение.

1 голос
/ 16 января 2012

Как говорится в сообщении, у вас есть проблема "Доступ запрещен". Возможно, ваши учетные данные Windows не имеют необходимых прав для выполнения требуемого вызова Win32 ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...