• 7336阅读
  • 6回复

[讨论]实现和VS2010编译后同样的盾牌效果 [复制链接]

上一主题 下一主题
离线zamxqun
 

只看楼主 倒序阅读 楼主  发表于: 2014-05-04
用VS2010开发程序时,只要在.vcxproj的<Link>标签中添加一行:<UACExecutionLevel>RequireAdministrator</UACExecutionLevel>
那么编译出的程序,在win7系统下,就会在图标上多了一个小盾牌的标志。现在想用QtCreator编译程序,实现同样的效果,朋友们知道怎么做么?具体的步骤是什么?
离线ashe0817

只看该作者 1楼 发表于: 2014-05-05
离线zamxqun

只看该作者 2楼 发表于: 2014-05-05
回 ashe0817 的帖子
ashe0817:
http://blog.csdn.net/aqtata/article/details/17222691  

我改了E:\Qt\Qt5.2.1\5.2.1\msvc2010\mkspecs\win32-msvc2010\qmake.conf,但是编译后还是没有盾牌,运行报错

离线seanyxie

只看该作者 3楼 发表于: 2014-08-05
我奔向太阳,在日落前必将找到你。
欢迎光临Qt技术博客 http://www.seanyxie.com
离线seanyxie

只看该作者 4楼 发表于: 2014-08-05
我奔向太阳,在日落前必将找到你。
欢迎光临Qt技术博客 http://www.seanyxie.com
离线junan

只看该作者 5楼 发表于: 2014-08-07
1、编辑App.rc文件,增加下列内容
1 24 "YouApp.exe.manifest"

2、编辑manifest文件内容,与VS相同
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

3、修改pro文件增加下列内容
win32:
RC_FILE = App.rc

4、rebuild即可

离线809097747

只看该作者 6楼 发表于: 2016-11-10
你好,我用的是qt + win32-vs2005 静态编译。这种方法试过了,不能用。后来我是这样试的,修改qmake.conf文件(QMAKE_LFLAGS_WINDOWS    = /SUBSYSTEM:WINDOWS \"/MANIFESTDEPENDENCY:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\' processorArchitecture=\'*\'\"\"/MANIFESTUAC:level=\'requireAdministrator\' uiAccess=\'false\'\"),然后再添加uac.manifest的文件到资源文件(.rc)中。uac.manifest文件内容如下:
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2. <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  3. <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  4. <security>
  5. <requestedPrivileges>
  6. <requestedExecutionLevel level="requireAdministrator"/>
  7. </requestedPrivileges>
  8. </security>
  9. </trustInfo>
  10. </assembly>

编译之后生成的exe文件点击打开会自动弹出“用户账户控制”窗口。但编译的时候会报告错误,但不影响生成exe。编译出错提示:release\DMX126_V10.intermediate.manifest : general error c1010070: Failed to load and parse the manifest.
我查了下,老外说什么manifest的文件名过长,导致加载不了这文件,请问怎么破?怎么去设置呢?
快速回复
限100 字节
 
上一个 下一个