运行期间请求管理员权限
此信息写入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如果你想让它在响应按钮
(例如,像在任务管理器“显示过程为所有用户”),你必须使用到resart您的应用程序以下方法
ShellExecute(0,L"runas",exepath,0,0,SW_SHOWNORMAL);
我不认为有可能在运行时改变执行级别;我的解决方案确实是使用仰角重新启动应用程序。谢谢。 – tenfour 2010-08-25 12:36:37
是不是属于超级用户? – hsz 2010-08-04 12:10:17
@hsz:不完全,因为OP正在使用代码在他的程序中执行此操作。 – BoltClock 2010-08-04 12:11:37