Я открываю процесс с помощью PROCESS_QUERY_INFORMATION | PROCESS_VM_READ. Открытие процесса с помощью PROCESS_QUERY_LIMITED_INFORMATION работает, но затем EnumProcessModulesEx завершится ошибкой. Согласно моему тестированию, и PROCESS_QUERY_INFORMATION, и PROCESS_VM_READ, если они используются отдельно, не смогут выполнить OpenProcess() для пользователей с указанной проблемой. Также я считаю, что PROCESS_QUERY_INFORMATION | PROCESS_VM_READ требуется для EnumPorcessModulesEx, поэтому попытка с меньшими правами доступа невозможна.
Однако, когда приложение выполняется с помощью "< strong>Запуск от имени администратора", эта проблема больше не возникает. OpenProcess() работает, и приложение работает должным образом.
Проблема
Код: Выделить всё
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processid);
Частичное решение
...запустите приложение от имени администратора. OpenProcess() тогда работает хорошо.
Вопрос
Почему доступ запрещен для некоторые пользователи, когда приложение запускается без «Запуска от имени администратора»? Есть ли альтернативный способ получить список модулей другого процесса, не запуская мое приложение от имени администратора?
Подробнее здесь: https://stackoverflow.com/questions/357 ... some-users
Мобильная версия