admin管理员组

文章数量:1534591

2023年12月15日发(作者:)

WIN7兼容性解决

兼容性,英文名Compatibility,这个概念最早是用来形容电脑硬件的(我们此处指针对电脑兼容性,不包含其它行业),早期的DIY电脑,由于每个硬件厂商的标准有可能略有出入,因此把不同厂商生产的产品组合在一起时,它们相互之间难免会发生“摩擦”,这种摩擦便是不兼容,最常见的就是主板和其他硬件出现不兼容现象,这也是为什么早期有的厂商会把“兼容机”作为卖点。后来兼容性这个概念逐渐出现在电脑系统和软件上,而随着系统软件的更新换代,这一词汇出现的频率也越来越高。相对于软件来说,兼容性有几个表现方面,一种是指某个软件是否能够稳定地工作在操作系统之中,一种是指在多任务操作系统中,同时运行几个软件时是否能稳定工作,还有一种就是软件共享,几个软件之间无需复杂的转换,即能方便地共享相互间的数据,也称为兼容。简单的说,兼容性就是指软件、硬件、操作系统之间的能够正常有效的合作并稳定运行。

兼容性问题会出现在很多种情况下,比如硬件之间的冲突,软件之间的冲突,软件和操作系统的冲突等等。在很多人的潜意识里,当我们在操作系统中安装或运行游戏时,出现了问题,都会归咎于操作系统的问题,并不会再去研究不兼容问题的真正原因。

其实造成兼容性问题的主要原因还是因为标准的不统一,我们都知道,软件是要运行在操作系统上的,所以在软件开发时,为了能够适用于绝大多数用户,通常研发人员都是以当时通用的操作系统为样板平台进行开发。举个例子,在Windows 98大行其道时,开发商使用的开发平台也是Win98,这样开发出的软件可以非常顺利运行在Win98上,不过等到大家都开始使用Windows 2000时,这个程序就有可能遇到问题,因为当初在开发时还没有Win2000这个系统,所以会发生什么问题也无法提前预估。这时通常会出现两种结果,第一种,由于这个软件并不涉及到系统改变的地方或是涉及到的地方很少(比如Windows的核心代码或动态链接库),这时这个软件依然可以很顺利的运行,最多可能就是出现一点不影响使用的小问题;第二种,很不巧,这个程序恰巧需要调用Win98中的某一个文件,然而这个文件在Win2000中已经换了名字或是不存在了,那这个程序就无法再运行了,而我们也就会说,这个程序和Win2000不兼容。

有时候电脑中的问题并不是操作系统和软件之间造成的。比如有些网友反映,他的电脑中安装了一些视频和图片制作的软件,这些软件单独安装和使用的时候都可以很正常的运行,但当软件同时安装到一起时,问题就来了,他的绘声绘影和威力导演软件就出现了这样的问题,卸载掉其中任何一个,另外一个都可以运行的嗖嗖的。为什么出现了不兼容的问题?难道是他们看不上彼此?这个问题可能就需要两个厂商坐下来好好商讨一下了。经过测试发现,绘声绘影和Premiere、Adobe Ultra CS3有时也会出现兼容性问题,具体表现就是软件运行不流畅,而且计算机资源利用率比单独安装前高很多。如果有在Windows 7上使用Adobe

Ultra CS3的朋友,请注意,如果你发现Adobe Ultra CS3根本无法运行(具体表现为打开后无响应),你可以试着卸载掉“绘声绘影”再试试,没准你就看到了见证奇迹的时刻。这种因为软件冲突而导致无法使用的问题有很多,小七也不清楚到底有多少,在这里小七也号召大家能够把自己经历的、知道的、听说的这种情况分享出来,从而帮助更多的人远离兼容性的困扰。

在Windows 7中会有哪些原因会造成与软件的不兼容呢?总结一下大致由于以下几个原因:

1. 用户账户控制(UAC):可能有人不知道什么是UAC,但我想大家肯定都遇到过在安装或运行程序时,在双击图标后屏幕突然变暗,在屏幕中间出现一个对话框,让我们选择确定或取消。这就是UAC起到作用的表现。UAC是非常出色的安全功能,可以大幅度的提升Windows 7的安全性,具体内容大家可以参考小吕同学的安全文章(/blog/222889495/448413066)。

2. 操作系统版本更改:操作系统版本号会随每个操作系统版本而更改。而更改操作系统的版本号会影响专门检查操作系统版本的程序,并且可能会阻止安装或阻止程序运行。

3. Windows资源保护(WRP):在Windows 7中更为注重安全性,很多受到保护的文件是不允许进行修改或删除的,甚至一些关键位置的文件夹都会有严格的权限控制。而在当我们在安装程序时,有的程序可能需要在关键位置或是某个重要程序中修改或写入自己的一些内容,Windows 7于是会阻止这些操作,因而出现兼容性问题。

4. 颜色,分辨率等设置不满足该程序的要求,通常出现在早期游戏无法在新系统下运行。

这些原因是不可避免的,为了让系统满足技术的发展以及时代的进步,这些改变是不可避免的,那么如果遇到了不兼容的情况,我们该如何去做?一般来讲有三种方法可以解决。第一种方法很简单,等待软件的更新或升级,软件开发商升级软件有时候是因为要弥补漏洞改善功能,有时候也是为了让软件在新的系统中能更好的兼容。可能有人会问,为什么不让操作系统去改变呢?这个问题其实仁者见仁智者见智,举个不太恰当的例子,从前有一条土路,路面凹凸不平,所以这条路上跑的都是拖拉机,后来这条路被修成了高速公路,最低限速不得低于80公里,这时拖拉机就跑不了了,因为他们不符合这条路的要求,于是这条路上跑的都变成了小轿车,你不可能因为拖拉机跑不了高速公路就要求换回土路,而系统和软件之间就像是这个关系。

第二种方法可以算是一种手动的解决办法,有些软件可能可以借此解决。如果你常玩游戏的话,你有时可能会遇到某个游戏在安装后玩不了,但是,当你把某个所需的DLL文件拷贝到系统目录下以后,这个游戏就能运行了,这就是我所说的手动解决兼容性的方法,不过这个方法局限性很大,只有少部分的软件可以用这种方法解决。

第三种方法是凭借Windows 7内置的功能进行调整,有一些软件可能在安装或使用时出现了不兼容的情况,但是这并不是真的就不能使用,就像我们之前分析的原因那样,在Windows 7的安全架构中,由于有UAC,WRP等功能机制的保护,很多权限被严格规范了,而一些程序就因此无法正常使用,而Windows 7则给出了自己的解决方法。

1. 兼容性疑难解答:首先在不兼容的软件上点击右键,然后选择“兼容性疑难解答”,在打开的兼容性疑难解答向导中,我们可以根据自己碰到的问题逐一选择,随后计算机会给出相应的解决方案。如果我们不知道我们的问题出在哪也没关系,我们也可以在向导中选择建议设置,让计算机按照常规模式来对软件进行设置,从而解决兼容性问题。在整个的调整过程中,我们不需要任何多余的操作,一切只需要按照向导提出的问题进行相应的选择即可。

2. 设置兼容模式:由于很多软件或游戏在启动时或自动检测操作系统的版本号,而由于在Windows 7中版本号发生了改变,造成了很多软件无法运行。我们可以通过在程序上点击右键选择属性,找到兼容性选项卡,设置兼容模式。比如该软件以前在XP中可以正常运行,我们就可以将兼容模式调整至Windows XP,保存设置后,尝试运行软件。

3. 设置颜色、分辨率:在很久以前,我们的游戏和软件还运行在256色下,而今天,我们已经在使用32位真色彩了,这些老旧的游戏会因为现在技术的发展而导致无法正常运行。没关系,我们可以通过在程序上点击右键选择属性,找到兼容性选项卡,在设置中设置运行软件或游戏的颜色,分辨率等选项,从而达到兼容的目的。

4. 管理员身份运行:由于在Windows 7中采用了UAC保证机制,所以软件在安装和运行时并不会真的使用管理员身份运行(虽然你是管理员,但是权限只拥有用户权限),但这样也就造成了兼容性问题,我们可以通过在程序上点击右键选择属性,找到兼容性选项卡,勾选以管理员身份运行程序,这样就可以让那些需要权限的游戏或软件有足够权限去启动和执行。

其实上面描述的四种方法究其根本都是通过模拟软件的兼容模式而实现的,这种方法早在Windows XP时代就已经出现了,只是很多人并不知道,小七分享出来希望可以帮到一些朋友,不过要是你早就知道了,也千万别嫌小七嘴碎。

小七这几天在网上搜索时,也发现了很多有意思的现象。同一款游戏,有人兼容,有人不兼容,这真是个奇怪的事情,我觉得这种问题的原因有可能是因为硬件驱动造成的,游戏对硬件设备,尤其显卡的要求还是比较高的,驱动程序如果有瑕疵,可能在平时的使用时并不会有所表现,一旦需要他大功率运作,就有可能把问题显现出来。比如穿越火线,在不同的电脑,不同配置上,就会有的兼容,有的不兼容。小七也会继续对这些软件游戏进行测试和关注,同时也会经常把最新动态分享给大家,小七相信,随着Windows 7的逐渐普及,不兼容的软件会越来越少,最终我们将不再为兼容性问题而困扰。

以兼容模式运行安装驱动

悬赏分:0 - 解决时间:2010-4-15 10:49

提问者: Win7使用 - 一级

最佳答案

有的老旧显卡,最新的驱动程序已经不支持了,用户也只能使用以往的驱动程序。比如小七一款旧型号笔记本,845G集成显卡就根本没有最新驱动支持,只能下载到06年的显卡驱动,直接双击安装提示不支持本系统,看来不能直接装。那我们就换一种方法:

1, 右键点击驱动文件包。选择其中的最后一项“属性”。

2,选择属性会话框中的“兼容性”选项卡,在“兼容模式”中,勾选上“以兼容模式运行这个程序”前的复选框,然后在列表中选择Windows XP SP3(如果SP3不行,可以尝试XP SP2),最后选择OK。

3,重新运行驱动程序,这时候应该就可以安装了。

在安装了这个06年的WindowsXP驱动程序之后,小七的屏幕分辨率可以自动识别到正确的1280*1024了。不过由于此版本的驱动太老旧了,并且集成显卡本身性能有限,所以Aero透明效果并没有开启。

此外还有一种方法,就是去/网站下载一款名为驱动精灵的软件,此款软件附带了大量的旧型号硬件驱动,苦于找不到旧型号硬件驱动的朋友不妨一试。

你的windows7兼容了吗? 三大策略助你一臂之力(转自-吕汀栎)

1楼

好多同学最近都有一个疑问:“我到底要不要装windows7呢?”

“Windows7界面很漂亮,也更加注重人性化同时速度又更加快。但是,我怕我的机器装不上啊。”

机器装不上是什么意思呢?

windows7全知道

5位粉丝

2010-4-15 15:45

回复

其实大部分同学所说的机器装不上无非就是这几个方面:1,机器太老,怕配置不够;2,机器还可以,但是电脑生产厂商没有提供针对Windows7的驱动,害怕自己装上Windows7之后某些硬件无法使用;3,怕自己经常使用的某些“老软件”无法在Windows7上安装和使用。

对于第一点,大家可以参照微软官方网站的windows7系统要求,另外可以使用windows7升级顾问进行软硬件检测。

对于第二点,我在前面的文章里做了详细的叙述,如果有兴趣的话,参见我的文章《三大兵器在手 驱动从此无忧》,同大家一块儿探讨。

今天,我想跟大家探讨的便是Windows7软件兼容问题,从兼容问题出现的原因开始,逐步探讨,层层深入,文章的最后再一起学习一下如何用Windows7的XP MODE实现XP模式与Windows7实现无缝对接,完全解决Windows7兼容问题。

从一个事例开始:

小吕同学学校内部有个叫做VOD视频点播系统的网站,从里面可以看到好多不错的电视剧和电影,但是,小吕同学在装上Windows7之后,在安装VOD系统点播专用播放器“邦丰网络播放器”的时候,却出现了这个画面。

2楼

小吕同学可是选择的管理员权限进行安装的啊。这可怎么办呢?

不要着急。马上,我们便知道这个中原委了。

兼容性出现的常见原因:

windows7全知道

5位粉丝

1 ,API(Application Programming Interface,应用程序编程接口)

在探讨兼容性出现原因之前我们非常有必要先了解这个名词,“应用程序编程接口”,听起来非常专业的一个名词,其实我们可以理解成这是一个黑盒子,里面放着很多做好了的程序源代码,它们能为我们提供各种功能,因此我们不需要了解太多内部的结构,借助这些程序编程接口便能进行操作。对于操作系统方面,我们可以简单的认为,由于操作系统掌握了太多的软硬件工作和运行的权限,为了协调各种软硬件资源的正常运行,操作系统把自己用一个小黑盒子封装起来了,所有与系统内核和硬件级的程序交互,必须通过windows API来进行。

所以,问题便出来了,大家考虑过一点没有,每次操作系统版本的升级,往往内核都有改变,内核的改变反映到外部我们最能看到的部分不仅仅是操作系统界面的改变, 更实质的变化则是API程序编程接口的变化,删除旧的不适用的API函数增加新的API函数或修改旧的API函数。增加新的API函数往往不会产生问题,但是,删除旧的API函数却有可能造成旧版本软件的不兼容,比如某个软件需要调用旧版本操作系统内核的一个API函数但是这个API函数在新的版本操作系统里面却没有,被删除了,这时,程序往往就会报错了。如果这个API不是很重要,往往我们点击确定之后程序仍旧能够正常使用,但是如果这个API对程序的运行起着至关重要的作用的话,这个程序便不能在新的系统里面运行了。这是最严重的程序兼容问题。解决的办法只能是更新应用软件程序代码。对于我们最终用户来说,解决的途径可以采用XP-mode,但是,这个XP模式的开启是需要严格的条件的,我在下一篇文章里将会同大家专门探讨如何使用XP-Mode来解决兼容问题。

2, UAC的出现

安装时:

在我的以前的文章里面我详细的介绍过,UAC的出现,用户在使用管理员账号登陆系统的时候默认被分配有两个访问令牌,一个是普通用户特权的,一个是具有管理员用户特权的。而我们默认使用的却是仅仅具有普通用户特权的令牌,这个令牌的特权非常少,比如不能向系统关键区域如系统盘根目录(我们最常见的C:)、windows目录、program files目录等还有不能向注册表的HKLM/Software下写入键值。但是,问题出现了,XP时代的程序员们过的是具有管理员特权的日子,他们写的程序大都是直接往这些敏感部位写数据的。于是,在没进行管理员特权提升的情况下,问题出现了,这些程序的数据被虚拟重定向了。然而,专门为Vista系统开发的程序如果没有进行管理员权限的提升的话,会直接报错。这两种都被看做是程序兼容性问题的一种。

运行时:

程序需要向敏感部位写数据,而我们并没有进行管理员权限的提升,程序执行不成功。造成兼容性问题。

3,操作系统版本检查

操作系统版本检查本来是为了确保应用程序所需要的某些操作系统特性确实存在,比如具备程序运行所需要的API函数,有了这些操作系统特性,应用程序才可以正常运行。然而当操作系统版本检查被滥用的时候,很多兼容性问题由此而产生。

用户可能会遇到应用程序在加载的时候,悄无声息地退出而没有任何的信息提示。有的用户可能会看到一个类似“此应用程序必须在Windows XP或者是其后的操作系统上运行”的错误提示对话框。但是,事实上这台计算机的操作系统是Windows 7,当然是在Windows XP之后了。错误或者说是低劣的版本检查,会给用户带来极大的不便。

文章开始时我的那个截图大家还记得吧,我的这个程序却是应用程序开发人员特意设计的版本检查行为,他们希望阻止应用程序在未经过足够测试的新操作系统上运行。但是,通常建议程序员尽量不要阻止应用程序在更新的操作系统上运行。除非最终用户许可协议禁止应用程序在更新的操作系统上使用,否则应用程序不应在操作系统版本号增加的情况下无法运行。如果应用程序无法运行,则必须向用户发送消息,并向日志写入一条消息,然后正常退出。

三大利器:

大家是不是发现我很喜欢三这个数字啊?不清楚为什么,我写的这个文章怎么都具有三的特性。这次针对上面提到的兼容性问题出现的原因我我倒着跟大家探讨解决办法:

1,版本欺骗策略

本策略是为了解决“操作系统版本检查”而实施的策略。

当一个应用程序在“不兼容”的Windows版本上运行的时候,它可能会显示一个错误消息,也可能悄无声息地退出或者是无法正常工作。通常,如果我们解决了版本检查的问题,它就可以正常工作。于是,我们可以进行版本欺骗:

最终用户或者是IT管理员可以简单地使用Windows 7的XP兼容模式,或者是微软所提供的应用程序兼容性工具集(Application Compatibility Toolkit (ACT)),对应用程序进行操作系统版本“欺骗”,让应用程序认为他还是运行在较旧的Windows版本上,从而解决版本检查的问题,让应用程序在 Windows 7上正常运行。

具体“欺骗”方法:右击提示操作系统版本不符的软件,选择“属性”,切换到“兼容性”选项卡,在兼容模式中选择操作程序提示要求的操作系统及其版本。遇到悄无声息推出安装的程序可以选择让操作系统“帮助我选择设置”,如下图。

2010-4-15 15:46

回复

3楼

windows7全知道

5位粉丝

点击确定,是不是原先不能安装的应用程序,现在可以安装了,另外聪明的你是不是发现,这些软件其实在windows7下面往往都是允许的非常正常呢?

2,人为管理员权限提升策略

本策略是为了解决操作系统“安装程序检测”功能不足的策略。

其实,如果没有“安装程序检测”功能的话,在UAC机制出现之前所设计的应用程序默认都不会被进行管理员权限的提升的,这样的话很明显会为这些应用程式的执行带来兼容性的麻烦。于是,为了解决这个问题,“聪明”的雷德蒙程序员们想出了一个办法:安装程序检测。这个安装程序检测的作用便是:操作系统将采用一些启发式算法来判断应用程序是不是一个安装程序,也就是在执行的时候这个程序是否需要请求管理员权限,

如果操作系统判断应用程序是一个安装程序,就会让它在执行的时候向用户请求获取管理员权限以便让应用程序正确的执行。

但是,这个检测并不是总能保证正确的,有些时候这个检测没有把我们的早期的安装程序正确识别的话,我们便只能人为的进行管理员权限提升了,右击提示操作系统版本不符的软件,选择“属性”,切换到“兼容性”选项卡,如下图:将特权等级下面的“以管理员身份运行此程序”前面的框勾选上。这样就不会出现虚拟重定向和写入不成功的问题了。

原文出自:/blog/222889495/450742330 原著-

吕汀栎

本文标签: 软件程序运行出现管理员