Как получить путь к запущенному процессу при отсутствии прав пользователя - PullRequest
3 голосов
/ 05 марта 2012

Можно ли извлечь путь к процессу, если этот процесс выполняется учетной записью администратора из учетной записи пользователя? если ваша учетная запись пользователя не имеет разрешения на этот процесс. CreateToolhelp32Snapshot получает список всех процессов в системе, независимо от прав пользователя, но этот снимок содержит только имена .exe, без пути.

Ответы [ 2 ]

5 голосов
/ 05 марта 2012

CreateToolhelp32Snapshot и Process32First / Next предоставят вам идентификатор процесса каждого процесса. Используйте этот идентификатор с OpenProcess, чтобы получить дескриптор процесса, а затем передайте этот дескриптор QueryFullProcessImageName (требуется Windows Vista или более поздняя версия). Когда вы звоните OpenProcess, запрашиваете PROCESS_QUERY_LIMITED_INFORMATION доступ, и вы сможете получить доступ даже к процессам с повышенными привилегиями.

0 голосов
/ 07 марта 2012

Потратил много времени, пытаясь справиться с разрешениями. Я думаю, на самом деле - можно предоставить необходимые привилегии для обработки, чтобы процессы пользователя и администратора видели друг друга и сотрудничали. Но я не нашел подходящего решения, используя этот метод. Именно то, что мне было нужно - синхронизировать приложения, работающие под разными пользователями, и я нашел решение для своего случая - Глобальный мьютекс!
Когда приложение запускается, оно создает свой собственный мьютекс и проверяет, существует ли аналогичный процесс, ищущий его мьютекс.

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