这几天写了几个修改注册表的程序,因为需要管理员权限,所以就搜了一下如何构建启动时申请管理员权限的程序(UAC支持,也就是程序左下角多了个小盾牌)。

其实方法很简单,就是修改manifest文件中执行权限为即可。具体方法如下:

  1. 在项目上选择添加新项->常规->应用程序清单文件(Add->Add new item->Application Manifest File),将app.manifest文件添加至项目中。
  2. 打开该文件,在requestedExecutionLevel节中, 把level值改为requireAdministrator,重新编译即可。

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
            <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
                <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
            </requestedPrivileges>
            <applicationRequestMinimum>
                <defaultAssemblyRequest permissionSetReference="Custom" />
                <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
            </applicationRequestMinimum>
        </security>
    </trustInfo>
</asmv1:assembly>

posted on 2009-07-06 00:05  天方  阅读(2334)  评论(0编辑  收藏  举报