Доступ OpenProcess отрицается для некоторых пользователейC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Доступ OpenProcess отрицается для некоторых пользователей

Сообщение Anonymous »

У меня есть приложение, которое открывает еще один 32-разрядный процесс, не связанный с системой, и пытается получить список его загруженных модулей с помощью EnumProcessModuleSex и пути каждого модуля с GetModuleFilenameEx . Это хорошо работает в моей среде разработки (Windows 10) и для многих пользователей, которые протестировали приложение. Тем не менее, для некоторых пользователей (два пользователя, Windows 8.1 и Windows 10) Функция OpenProcess () не выполняет сбой с доступа (код ошибки 5) .

Я открываю процесс с помощью 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 , поэтому попытка с меньшим количеством прав доступа не является опцией. OpenProcess () работает, а также приложение работает, как и ожидалось.hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processid);
< /code>

работает для большинства пользователей, но возвращает код ошибки 5, доступ к некоторым пользователям приложения отрицается. OpenProcess () затем работает хорошо. < /P>

Вопрос < /strong> < /p>

Почему доступ к некоторым пользователям отказывается, когда приложение выполняется без «запуска как администратор»? Есть ли альтернативный способ получить список модулей другого процесса без выполнения моего приложения в качестве администратора?

Подробнее здесь: https://stackoverflow.com/questions/357 ... some-users
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»