Вопрос по privileges, admin, c++ – C ++: запуск программы от имени администратора

14

Некоторые программы автоматически запрашивают права администратора при их запуске. Эти программы помечены маленьким щитком в правом нижнем углу:

Сейчас я'Мне интересно, как я мог бы сделать это в C ++.

Есть ли функция для этого или мне нужны специальные команды компилятора / компоновщика для этого?

Это'не оC ++, но как устанавливаются свойства ссылки на программу! Увидеть 'Запустить от имени администратора' флажок. πάντα ῥεῖ
Включите правильно созданныйфайл манифеста в вашем исполняемом файлересурсы. syam
Это зависит от операционной системы. В Linux и Unix (или POSIX) читать оSeteuid исполняемые Basile Starynkevitch

Ваш Ответ

2   ответа
5

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

Вам не нужно ничего устанавливать из своего приложения для этого.

Надеюсь, что ответ может помочь вам.

18

CreateProcessAsUser или жеCreateProcessWithLogonW функция.

Есть еще один вариант, подобный этому:

Перейти к проектуДиалоговое окно «Страницы свойств».Теперь откройте узел Свойства конфигурации.Далее вы должны открыть узел компоновщика.затем выберите свойство Manifest File.Наконец, измените свойства «Включить контроль учетных записей (UAC)», «Уровень выполнения UAC» и «Защита UI Bypass UI».

Примерно так:

И в качествеSyam Правильно упомянутое в комментариях решение может заключаться в том, чтобы вставить манифест в исполняемый файл.

Программы, вызывающие эти функции, автоматически помечаются расширением значка при связывании с ними, верно? πάντα ῥεῖ
Нет, это недостичь того, чего хочет ОП ("щит» слой на значке + автоматически запускается от имени администратора с первым запросом UAC). Как я сказал в комментарии, решение состоит в том, чтобы встроить манифест в исполняемый файл. syam
@syam: - Обновил мой ответ на тот, который вы упомянули. Надеюсь, что это имеет смысл сейчас? Rahul Tripathi
@RahulTripathi Я верю, что ваше решение предполагает изменение проекта.Свойства s делают именно то, что я имел в виду, просто с дружественным пользовательским интерфейсом вместо ужасного XML-файла. :) syam

Похожие вопросы