如何使用Visual Studio 2005中的清单文件以管理员权限运行应用程序?

时间:2013-04-12 09:41:02

标签: c++ windows-8 windows-vista manifest windows-server

我需要创建一个需要在“C:\ Program Files”,“Users [username]”和Sys32中创建文件/文件夹的应用程序。此外,应用程序还需要进行一些注册表项。

此应用程序需要在Vista及更高版本上运行。此外,在Windows Server 2003及更高版本上。

上述操作系统具有用户帐户控制(UAC)的概念,访问程序文件和在注册表中写入需要管理员权限。

我查看了许多论坛,发现使用Microsoft SDK我们可以检查当前用户是否具有管理员权限。但Vista和更高版本操作系统的功能“CheckTokenMembership”失败。

我还找到了一个解决方案,其中清单文件可用于事先告诉操作系统当前应用程序需要管理员权限。这是使用“requestedExecutionLevel”标记完成的。

我正在使用Visual Studio 2005来创建应用程序。当我们在Visual Studio中创建应用程序时,会创建一个默认的清单文件。我可以更改此清单文件以包含“requestedExecutionLevel”标记,以便我的应用程序始终以管理员权限运行吗?

我的应用程序是否有任何其他方法以管理员权限运行而不要求用户(管理员或标准)以“以管理员身份运行”运行我的应用程序?

谢谢!

1 个答案:

答案 0 :(得分:26)

你应该在项目属性Linker中找到一个选项 - >清单文件 - > UAC执行级别。将其设置为requireAdminstrator

这将导致默认生成的清单包含您需要的requestedExecutionlevel,以便在用户尚未提升时自动提示他们提升权限。

screenshot of visual studio UAC options