Поэтому я провел некоторое исследование, но мне интересно понять, как можно заставить его программу запрашивать административные привилегии от UAC до ее выполнения. Требуется ли для этого использование runas внутри ShellExecute ()? Я понимаю, что это то, что мне нужно будет понять в моем приключении по программированию, так как почти каждая программа, которую я установил, спрашивала меня об этом. Так, например, если бы я дал программе привилегии при запуске, она могла бы выполнить любой командный файл или оператор cmd через функцию system () правильно?
#include "stdafx.h"#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
system("notepad");
return 0;
}
Вы можете установить requireAdmin в файле манифеста исполняемых файлов, и тогда это потребует, чтобы ваше приложение было поднято до admin, пользователю может потребоваться предоставить дополнительные учетные данные (например, запустить от имени).
Это поместит небольшой щит против вашего приложения в проводнике.
В Visual Studio
Вы можете сделать это другими способами, но это один из самых простых.
Итак, в вашем примере, если написанная вами программа имеет уровень выполнения UAC, установленный на «requireAdministrator», тогда вызываемая вами программа также будет повышена в этом блокноте. (Я думаю, что может быть какой-то способ убедиться, что вы не возвышены, но я никогда этого не делал)
Других решений пока нет …