Отказоустойчивый код на c ++ после отказа в доступе - PullRequest
1 голос
/ 12 июля 2020

Я новичок в программировании. Я хочу запустить программу на C ++, которая запросит разрешение администратора у пользователя в windows. Есть ли способ запустить еще одну кучу кода, если разрешение не предоставлено ??

system("setup.exe"); // Это запросит административное разрешение для пользователя. Если в разрешении отказано, я хочу выполнить другие коды, например printif («Дать административное разрешение в следующий раз»);

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Как я уже сказал, я новичок в программировании. Итак, U пробовал разные коды, не зная, что на самом деле они должны делать. Итак, наконец, простой код servrd моя цель, хотя я не знаю, что на самом деле там происходит. Код:

if (system ("setup.exe")) {printf ("Дать административное разрешение в следующий раз");}

0 голосов
/ 12 июля 2020

Это невозможно сделать для уже выполняющегося процесса. Вы можете запустить только еще один процесс (даже если это то же приложение). Другой подход - добавить соответствующий манифест приложения, который заставит систему времени выполнения запрашивать у пользователя UA C подтверждение повышения с самого начала.

Для первого подхода см .: CreateProcessAsUser function ( Windows) .

Для второго (манифестного) подхода см., Например, следующий ответ: C ++ - Как запустить приложение с правами администратора с помощью файла манифеста в Visual Studio 2005 ? .

Обратите внимание, что невозможно повысить привилегии без явного согласия пользователя. Если бы это было возможно, это привело бы к поражению цели UA C. См.: Контроль учетных записей пользователей - Википедия, бесплатная энциклопедия .

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