在运行时请求管理员权限

时间:2010-08-04 12:08:43

标签: windows winapi elevation

如何在运行时请求管理员权限,以便给用户提示允许或禁止它?

2 个答案:

答案 0 :(得分:1)

如果你想要它来响应一个按钮(例如,像任务管理器中的“显示所有用户的进程”),你必须使用以下方法重新启动你的应用程序

ShellExecute(0,L"runas",exepath,0,0,SW_SHOWNORMAL);

答案 1 :(得分:0)

此信息写在exe文件清单中。您必须使用requestedExecutionLevel字段(但不确定 - 尝试将其设置为highestAvailable并查看它是否符合您的要求)。有关详细信息,请参阅此处(较旧的文章,但仍然有效):http://blogs.msdn.com/b/cjacks/archive/2006/09/08/exploring-manifests-part-2-default-namespaces-and-uac-manifests-in-windows-vista.aspx

Visual Studio中有一些工具允许您嵌入自己的清单,甚至只需编辑它。还有一个用Perl(http://metacpan.org/pod/Win32::Exe::Manifest)编写的工具。

编辑:有关详细信息,请参阅此文章:http://www.codeproject.com/Articles/66259/Requesting-Admin-Approval-at-Application-Start.aspx