这个小东西折腾了好长时间才搞定,记录一下
csdn上有此帖子:
http://community.csdn.net/Expert/TopicView3.asp?id=5683442在vista下文件名含有“update”的可执行文件在运行时都会被uac提示警告,不能改变文件名称,如何才能避开这个警告,QQ的
QQLiveUpdate.exe 程序是可以避开的。
用VC的资源方式打开QQ的
QQLiveUpdate.exe,可以看到它的资源里面有个类型为
RT_MANIFEST,
ID为
1的资源。那是一段XML代码,把它复制到你的程序中,它就可以直接拥有管理员权限。
下面是里面的xml代码:
把其中的<description>字段中的QQLiveUpdate改为你的应用程序名称就可以了,好像大小写也要一致。
<?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="IsUserAdmin"
type="win32"/>
<description>QQLiveUpdate</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
操作方法:
如果你的应用程序是用vc编辑的,那非常容易,直接在解决方案资源管理器视图中项目名或资源文件夹上点右键->添加资源->自定义
资源类型填:
RT_MANIFEST
把改好的xml段粘贴到出来的00000000的后面
把ID设为1,External File设为 False
C++ Builder:
我不知道怎么在bcb里设置,谁知道告诉我 ^_^
我是直接用vc打开用c++ builder生成的exe,点右键-〉添加资源,其他跟上面一样了
总结:
解决这个问题问了公司的两大技术元老,hongchun & xuzhao,在此致谢! ps:
今天我参与的网游项目《巨人》终极封测,大家有兴趣可以玩玩看 ^_^
posted on 2007-08-07 14:45
七星重剑 阅读(1317)
评论(0) 编辑 收藏 引用 所属分类:
PL--c/c++ 、
OS -- Vista