所以我做了一些研究,但是我很想知道如何让他的程序在执行之前从UAC请求管理权限。这需要在ShellExecute()中使用“runas”吗?我意识到这是我在编程的冒险中需要理解的东西,因为几乎我安装的每个程序都问过我。那么,例如,如果我在启动时给出了程序权限,那么它能够通过system()函数执行任何批处理文件或cmd语句吗?
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
system("notepad");
return 0;
}
答案 0 :(得分:4)
您可以在可执行文件清单文件中设置requireAdmin,然后这将请求将您的应用程序提升为admin,用户可能必须提供其他凭据(如run as)。 它会在资源管理器中对您的应用程序图标设置一点屏蔽。
在Visual Studio中
你可以通过其他方式做到这一点,但这是最简单的方法之一。 因此,在您的示例中,如果您编写的程序将UAC执行级别设置为“requireAdministrator”,那么您调用的程序在这种情况下也会被提升记事本。 (我认为可能有某种方法可以确保你没有提升,但我从未这样做过)