Я разрабатываю приложение на C ++, которое должно быть максимально переносимым и иметь возможность работать без повышенных привилегий, чтобы обычный пользователь мог его запустить.
Но я не уверен, как я могу это проверить, потому что в моей системе он работает без каких-либо всплывающих окон, таких как UAC или запрашивая привилегии. Есть ли способ проверить требуемые привилегии приложением?
Существует два способа, как приложение может заставить окна отображать приглашение UAC для получения более высоких прав:
эвристический
Windows включает в себя эвристическое обнаружение механизм, который пытается определить, следует ли классифицировать ваше приложение как «установщик» и, следовательно, требовать повышенных привилегий. Это делается автоматически и может вызвать проблемы, если у него есть ложная тревога, и это требует от вашей программы повышенных привилегий.
Явный
Если вы не хотите полагаться на систему автоматического обнаружения для правильной классификации вашего приложения, вы можете точно указать, какой уровень повышения вашего приложения необходим, изменив его. манифест.
квотирование эта статья MSDN:
asInvoker не запрашивая дополнительных разрешений. Этот уровень не требует дополнительных запросов доверия.
Это то, что вы должны использовать в вашем случае, если вы хотите гарантировать, что ваше приложение не будет неправильно классифицировано.
Если вы не отметите его явно в манифесте приложения, для него не нужно повышать привилегии, однако необходимо убедиться, что все функции будут работать.