【问题标题】:Granting c++ program administrative rights through UAC at startup在启动时通过 UAC 授予 c++ 程序管理权限
【发布时间】:2013-12-24 01:15:28
【问题描述】:

所以我做了一些研究,但我有兴趣了解如何让他的程序在执行之前向 UAC 请求管理权限。这是否需要在 ShellExecute() 中使用“runas”?我意识到这是我在编程冒险中需要了解的东西,因为几乎我安装的每个程序都问过我这个问题。因此,例如,如果我在启动时授予程序权限,它将能够通过 system() 函数执行任何批处理文件或 cmd 语句对吗?

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

using namespace std;

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

【问题讨论】:

  • 你谷歌了吗? this呢?

标签: c++ admin uac privileges runas


【解决方案1】:

您可以在可执行文件清单文件中设置 requireAdmin,然后这会请求将您的应用程序提升为管理员,用户可能必须提供额外的凭据(如运行方式)。 它会为您在资源管理器中的应用程序图标设置一个小屏障。

在 Visual Studio 中

  • 选择项目的属性,
  • 然后打开“配置属性”
  • 然后打开链接器
  • 选择“清单文件”
  • 并将“UAC 执行级别”修改为要求管理员

您可以通过其他方式执行此操作,但这是最简单的方法之一。 因此,在您的示例中,如果您编写的程序将 UAC 执行级别设置为“requireAdministrator”,那么在这种情况下,您调用的程序也会被提升为记事本。 (我认为可能有一些方法可以确保你没有被提升,但我从来没有这样做过)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 2013-09-22
    • 1970-01-01
    • 2020-09-04
    • 2015-05-17
    • 1970-01-01
    • 2015-06-19
    相关资源
    最近更新 更多