[转]让程序不触发 Vista/Win7下应用程序兼容性助手弹出 .
原文地址
http://blog.csdn.net/maxuhuiabc/article/details/6081874
在Vista/Win7下 运行一个 exe 应用程序后,系统经常弹出 兼容性助手对话框。这个十分烦人,上网搜索解决方案,
满屏都是修改系统组策略(实质是修改注册表),但是作为一个商业产品,有的用户不同意你随便修改他们的系统,
即便是你的安装程序偷偷的改也不行。而且这种解决方案不应该是一个开发人员的首选方案。
其实对于这个问题,微软已经为应用程序的 menifest 文件中添加了一个新的<compatibility> Section, 这个Section
用来指定你的应用程序可以兼容的操作系统。以下是MSDN上给出的示例:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
</assembly>
如果你的应用程现在正在使用一个manifest文件的话,那么将对应的 <compatibility> 节点添加到你的menifest文件中。
修改完这个manifest文件后,需要将你的程序重新编译一下,才能起作用(不知道这个是为什么).
另: 对于WindowsXP 这样的较早的操作系统,会忽略这个节点,所以这坨节点数据是向下兼容的。
有的人或许不喜欢一个.exe 带着一个 .manifest文件。这样来回复制时比较麻烦。
我们可以使用 mt.exe 工具处理一下,不过有一点要注意,你的项目编译时需要禁用 Incremental Build 选项。
mt -nologo -manifest VS2003Style.exe.manifest -outputresource:vs2003Style.exe;1
( 注: 1 -- 表示exe; 2 -- 表示dll)
这样,manifest文件就被整合到.exe文件里面去了。再也不需要一个小尾巴了。
[转]让程序不触发 Vista/Win7下应用程序兼容性助手弹出 .的更多相关文章
- Win7,Vista UAC下应用程序标注为“需要管理员权限”的四种方法(可以修改注册表)
[转]Vista UAC下应用程序标注为“需要管理员权限”的四种方法 在Microsoft 的UACBlog里对此有过叙述.总结如下: 首先,如果一个程序被识别为管理员程序时,Vista会在它的图标上 ...
- [C#]解决程序Vista/Win7下因UAC导致的读写错误
在微软的操作系统中,vista和win7加入了UAC的功能,UAC(User Account Control,用户帐户控制)是微软为提高系统安全而在Windows Vista中引入的新技术,它要求用户 ...
- VS2003在vista/win7下搜索会出现僵死
1. VS2003在vista下搜索关键词的时候会出现僵死的问题的解决方案: VS2003快捷方式右击选中属性->兼容性页签 : 选中用兼容模式运行这个程序,下拉框中用windows xp2 ...
- Vista UAC下应用程序标注为“需要管理员权限”的四种方法
在Microsoft 的UACBlog里对此有过叙述.总结如下: 首先,如果一个程序被识别为管理员程序时,Vista会在它的图标上加上一个盾牌标记.因此很容易看出来. 其次,如果UAC有效的话,管理员 ...
- win7如何设置某个软件不弹出用户账户控制
手动修改注册表: 在 HKEY_CURRENT_USERS\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 键下面 ...
- ALV屏幕捕捉回车及下拉框事件&ALV弹出框回车及下拉框事件
示例展示: 屏幕依据输入的物料编码或下拉框物料编码拍回车自动带出物料描述: 点击弹出框,输入物料编码拍回车带出物料描述,点击确认,更新ALV: 1.创建屏幕9000,用于处理ALV弹出框: 2.针对屏 ...
- 原生Js_实现简单的下拉折叠菜单(添加弹出动画效果)
用javascript实现简单的下拉折叠菜单效果 实现步骤 (a)获得各操作的dom对象: (b)在所有菜单按钮对象上添加单击事件: (c)设置所有菜单按钮样式为空,并将当前按钮的样式设置为“acti ...
- win7下让程序默认以管理员身份运行
在win7中用自己写的程序读取MBR时,突然提示无法对磁盘进行操作,而在xp下并没有这个问题:最后点右键以管理员身份运行才可以正常运行.于是想办法让程序在双击启动时默认以管理员身份运行.具体方法: 1 ...
- 【VS开发】win7下让程序默认以管理员身份运行
在win7中用自己写的程序读取MBR时,突然提示无法对磁盘进行操作,而在xp下并没有这个问题:最后点右键以管理员身份运行才可以正常运行.于是想办法让程序在双击启动时默认以管理员身份运行.具体方法: 1 ...
随机推荐
- How to temporally disable IDE tools (load manually)
It is possible to prevent the IDE Tools from being loaded automatically when starting Visual Studio. ...
- DS8800后端的光纤通道交换式互连方式
DS8800 使用SAS 硬盘.使用了FC 到SAS 转换,光纤通道交换技术被用于DS8800 后端. FC 技术是普遍用于在一个光纤通道仲裁环路(Fibre Channel Arbitrated L ...
- day33(sql)
操作数据库 增: create database 数据库名 character set utf8 删 drop database 数据库名称 改 alter database 数据库名称 charac ...
- set_magic_quotes_runtime set_magic_quotes_gpc
set_magic_quotes_runtime(0); 可以修改php.ini中 magic_quotes_runtime boolean的设置 当你的数据中有一些\"'这样的字符要写入到 ...
- Surface 2装机必备软件指南
新买的Surface到货了还不知道有什么用,每天就用来划划点点?有点太浪费了吧!跟哥走,哥给你推荐几款Surface 2装机必备的软件~应用商店,走起~ 初次使用看过来:Win8宝典 如果你是一个像我 ...
- libtool 创建库的工具
libtool 创建库的工具 1. 背景 在不同的系统中建立动态链接库的方法有很大的差别,这主要是因为每个系统对动态链接库的用法和实现并不相同,以及编译器对动态链接库支持的选项也不太一样. 对于开发人 ...
- 《mysql必知必会》学习_第四章_20180724_欢
P27: select prod_name from products; # select 列 from 表 # 从表products 中检索 名为 prod_name 的列 P28 多个语句一起必须 ...
- hdu 5087 次长升序串的长度
http://acm.hdu.edu.cn/showproblem.php?pid=5087 求数列次长升序串的长度 还是dp求最长升序串的长度,再开一个数组记录对于dp值的串的个数 最后看一下最长字 ...
- (使用STL自带的排序功能进行排序7.3.2)POJ 2092 Grandpa is Famous(结构体排序)
/* * POJ_2092.cpp * * Created on: 2013年11月1日 * Author: Administrator */ #include <iostream> #i ...
- unigui验证微信服务器的有效性
UNIGUI验证微信服务器的有效性: //////////////////////////////////////////// //UniGUIServerModuleHTTPCommand //公众 ...