Windows 7开发:版本检查 - 白皮书2011-04-18 MSDN 介绍用户和开发人员面对的大多数普通应用程序的兼容性问题,就是应用程序检 测操作系统版本后运行失败。当版本检测出现错误的时候,很多应用程序都会出错。用户可 能会有“静默失败”的体验,也就是一个应用程序加载失败并且什么都没有发生 。又或者用户可能会看到一个带有标示的对话框,写明了“你必须运行在 Microsoft Windows XP或更新版本”,但实际上计算机已经安装了Windows 7 。很多由于不严谨的 版本检测导致的结果,能够给用户带来很多的不便。由于版本检测造成的应用程序运行失败,通常是两个原因:• 在检测版本的 代码中的缺陷(错误)。比如次版本号降低,主版本提高(例如,版本号从5.1变为6.0)或 者一些期望的service pack (SP)没有安装,又或者你已经安装了更新的额操作系统(比如, 版本从Windows XP SP 2 变为 Windows Vista SP 1),都可能造成应用程序运行失败。• 故意的阻断,应用程序的开发人员会阻止应用程序运行在没有经过测试的操作系 统版本上(我们的建议是,不要阻止应用程序运行在未来的操作系统中)。当一个应 用程序以“不兼容“(由于不严谨的版本检测)的Windows版本运行,那么它通常 会提示一个错误信息,但是它也有可能静默退出或者有其他的行为。通常,如果我们使用版 本检测的解决方案,那么应用程序将能够很好的运行。最终用户和IT专业人员就能使用一个 简单的修复,来让应用程序知道它现在正运行在一个早期的Windows版本上。下面的章节提供了一些关于如何解决版本检测的兼容性问题的信息,同时也提供了如何检 测操作系统版本的信息。我们同时也给出最好最全面的建议:不用检测操作系统的版本,而 只需要检测操作系统的功能。解决问题Windows给我们提供了两种结构来解决 版本检测的问题:• 兼容性模式:它是专门为最终用户设计的,兼容模式是解 决兼容性问题的简单方法。当它被启用的时候,将修复一些列的兼容性问题,并且为早期 Windows版本所开发的应用程序提供一个更加兼容的运行时环境。这些修复的问题中的其中一 个就是“版本欺骗“,它将使函数返回一个用户在属性对话框中的兼容性标签中 选中的操作系统版本,而不是计算机的实际Windows版本。• 应用程序兼容性工 具 (ACT):为IT专业人员和开发人员提供的应用程序兼容性工具的集合,ACT提供了检测和调 试大量兼容性问题的方法,开发人员可以用来修复应用程序,同时,ACT还提供了通过从列表 中使用兼容性选项来解决兼容性问题的方法,包括“版本欺骗“。ACT提供了一套 能够解决细节问题的工具。兼容模式要启用兼容模式:1.右键点击可 执行文件或者可执行文件的快捷方式。2.点击属性。3.点击兼容性标签。4.选中以兼容模式运行这个应用程序:并且选择你希望应用程序运行的操作系统。一 些应用程序可能包含多个可执行文件。你可能需要为每一个文件都执行这样的操作。

5.点击OK来关闭该对话框。