admin — Предоставление программных прав на c ++ через UAC при запуске

Поэтому я провел некоторое исследование, но мне интересно понять, как можно заставить его программу запрашивать административные привилегии от UAC до ее выполнения. Требуется ли для этого использование runas внутри ShellExecute ()? Я понимаю, что это то, что мне нужно будет понять в моем приключении по программированию, так как почти каждая программа, которую я установил, спрашивала меня об этом. Так, например, если бы я дал программе привилегии при запуске, она могла бы выполнить любой командный файл или оператор cmd через функцию system () правильно?

#include "stdafx.h"#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
system("notepad");
return 0;
}

3

Решение

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

В Visual Studio

  • выберите свойства в вашем проекте,
  • затем откройте «Свойства конфигурации»
  • затем откройте линкер
  • Выберите «Файл манифеста»
  • и измените «Уровень выполнения UAC» на requireAdministrator

Вы можете сделать это другими способами, но это один из самых простых.
Итак, в вашем примере, если написанная вами программа имеет уровень выполнения UAC, установленный на «requireAdministrator», тогда вызываемая вами программа также будет повышена в этом блокноте. (Я думаю, что может быть какой-то способ убедиться, что вы не возвышены, но я никогда этого не делал)

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]