所以我做了一些研究,但我有兴趣了解如何让他的程序在执行前向 UAC 请求管理权限。这是否需要在 ShellExecute() 中使用“runas”?我意识到这是我在编程冒险中需要理解的东西,因为几乎我安装的每个程序都问过我这个问题。因此,例如,如果我在启动时授予程序权限,它就可以通过 system() 函数执行任何批处理文件或 cmd 语句,对吗?
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
system("notepad");
return 0;
}
最佳答案
您可以在可执行文件 list 文件中设置 requireAdmin,然后这将请求您的应用程序被提升为管理员,用户可能必须提供额外的凭据(如运行方式)。 它会在资源管理器中为您的应用程序图标设置一个小防护罩。
在 Visual Studio 中
- 选择项目的属性,
- 然后打开“配置属性”
- 然后打开链接器
- 选择“ list 文件”
- 并修改“UAC Execution Level”为requireAdministrator
您可以通过其他方式执行此操作,但这是最简单的方法之一。 因此,在您的示例中,如果您编写的程序将 UAC 执行级别设置为“requireAdministrator”,那么在这种情况下记事本中,您调用的程序也会被提升。 (我认为可能有一些方法可以确保你没有被提升,但我从来没有这样做过)
关于c++ - 启动时通过UAC授予c++程序管理权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20428102/