15.VC(custom)- 在Vista Win7 下提高管理员权限问题

以下程序集清单(Assembly Manifest)示例使你的程序在VISTA和WIN7下需要管理员权限,即在程序运行时弹出UAC提升权限对话框。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    version="1.0.0.0"
    processorArchitecture="X86"
    name="test.exe.manifest"
    type="win32"
/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
        </requestedPrivileges>
    </security>
</trustInfo>
</assembly>
如果希望更改 Windows 用户帐户控制级别,请用以下节点之一替换 requestedExecutionLevel 节点。
<!--普通权限-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<!--管理员权限-->
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<!--最高权限-->
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
以下程序清单文件文件使你的程序使用WINXP风格的控件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    version="1.0.0.0"
    processorArchitecture="X86"
    name="Test.exe.manifest"
    type="win32"
/>
<description>Test application for xp style.</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="X86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>

关联方式一般有两种:程序内部嵌入和外部关联。

程序内部嵌入方式的操作步骤为:
1. 新建一个程序集清单(Assembly Manifest)文件命名为"你的应用程序名.manifest",如你生成的文件为"Test.exe",那程序集清单(Assembly Manifest)文件名为"Test.exe.manifest"。
2. 导入资源选择刚刚新建的程序集清单(Assembly Manifest)文件(Test.exe.manifest),在弹出的资源类型对话框中输入"RT_MANIFEST",找到刚刚添加的资源,将它的ID属性修改为1,当然对于内部嵌入来说程序集清单文件名,资源类型和ID都是可以自定义的。
3. 重新编译你的程序即可。

外部关联方式的操作步骤为:
1. 新建一个程序集清单(Assembly Manifest)文件命名为"你的应用程序名.manifest",如你生成的文件为"Test.exe",那程序集清单(Assembly Manifest)文件名为"Test.exe.manifest"。
2. 将"Test.exe.manifest"放在你编译的"Test.exe"同一目录下即可。

注:若使用程序内部嵌入方式且程序集清单中定义需要管理员权限或以上权限时,编译的程序图标将有小盾牌标示,外部关联不会显示小盾牌。

我发现,在使用内部嵌入的时候,在XP下可以正常使用,但是在Vista 或是WIN7 程序会死掉,所以需要把导入的文件名修改下,改成:Test.xml 再导入进去就可以了

来自: http://hi.baidu.com/invisiable/blog/item/332805d9bab345e438012ff1.html


附加一点:如果是共享dll的话:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    name="TENCENT GAME"
    processorArchitecture="x86"
    version="1.0.0.0"
    type="win32"/>
<dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.6195" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
</dependency>

<description>TENCENT GAME</description>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
        <requestedPrivileges>
            <requestedExecutionLevel
                level="highestAvailable"
                uiAccess="false"/>
        </requestedPrivileges>
    </security>
</trustInfo>

注意name不同

VS2010之后有种简单的操作:


之后就会带上小盾牌,调试也会提示以管理员启动:


1.引言   WORD电子签名插件,支持手写、本地电子图章、以及网络图章功能。软件使用VC6,以ATL方式编写,软件小巧精致。   这是我学习ATL的成果,学习过程及程序的编写,前前后后共用了一个多月的时间,花了不少的心血。其间遇到了不少困难,终于都一一解决了。这要感谢www.csdn.net上的热心朋友,从他们的BLOG文章中,我获得了不少灵感。现在这个软件基本完成了,全部实现了我自己定的设计需求,自己觉得这个软件还有一定的用处,就把它的测试版发布一下,希望使用者多提宝贵意见。 注:测试版没有任何的功能限制,只是“关于”对话框中显示测试版字样。 2.功能 可以完成手写签名及插入签章的功能。插入签名或签章后,可以监控WORD文档是否被修改。软件的使用界面很简单,只是在WORD里插入了一个工具栏,上面有三个按钮。其它的功能在插入的签名或签章上按右键根据弹出菜单选择执行。 印章支持多种格式图片,如BMP,JPG,GIF(静止的)等,使用时用印章管理工具把这些导入到印章库即可。 印章库管理密码:12345   几个内置的印章使用密码:111111 3.软件的使用:   使用windows系统带的控件注册工具regsvr32.exe,注册一下XXHSignature.dll即可;或者直接运行当前目录下的Register.exe,也可完成注册。这样打开word就可以看到签名工具栏。 软件包含以下几个文件: steal.mdb 印章库。 xxhsignature.ini 配制文件,如果没有会自动生成。 XXHSignature.dll WORD2003的COM加载项。程序的主体。 Register.exe 注册/卸载XXHSignature.dll用,可以不使用,直接使用regsvr32。 register.bat 注册的快捷方式,调用register.exe。纯属辅助,方便使用。 unregister.bat 卸载的快捷方式,带命令行参数调用register.exe。纯属辅助,方便使用。 StealManager.exe 印章管理工具。 说明文档.txt 说明文档。 软件使用VC6、ATL开发,没有使用MFC,所以每个软件都很小巧。 我在开发时使用的环境为XP、WORD2003,对软件在其它环境下没有进行过测试,不知道存不存在兼容问题。期待大家的反馈,可以给我发EMAIL,或者到我的博客留言。 如果程序运行有问题,可以使用Unregister.bat或regsvr32 /u将其卸载即可。也可以使用WORD的加载项管理菜单(该菜单默认时不显示,可以点击工具->自定义中找到使之显示),禁止插插件启动时运行。 另外:软件编译为UNICODE,对WIN98肯定是不支持。 欢迎转载,转载时请不要删除这些信息。谢谢。 2008-10-17 作者:wallimn email:wallimn@sohu.com QQ:54871876 博客:http://blog.csdn.net/wallimn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值