Windows 机密废弃片段文件

Raymond Chen

这种事不常发生 ,但偶尔也会有某个旧功能被删除的情况 — 产品团队不免要庆祝一番。例如,在 Windows® XP 中,用来设置桌面图案的界面已被去除。如果您设法编写一段程序来调用 SystemParametersInfo(SPI_SETDESKPATTERN),就会发现底层功能仍在,但与之关联的内置界面已不存在。为什么要将桌面图案从桌面控制面板中去除呢?

我们的调查表明,现在几乎已经没有人使用桌面图案了。在内存非常昂贵、用户不想将四分之一的计算机内存浪费在 1MB 的壁纸位图上的时候,桌面图案非常流行。一张小小的 8×8 单色图案重复盖满屏幕,这样就以非常低的成本在 640×480 的屏幕上实现了某种程度的个性化。

但是,这些年情况的变化使桌面图案变得越来越没有吸引力。当然,首先是因为现在计算机的内存要远远超过 1983 年时的计算机内存。其次(也是当然)是因为现在监视器的分辨率要远远高于当时计算机的分辨率。一张精致的 8×8 大小的犬牙花纹图案在 1600×1200 的监视器上基本上只能显示成一个灰色污点。

它不是唯一被废弃的旧功能。另一个示例是片段文件。片段文件在 Windows 95 中引入,当时用作捕捉到文件中的文档碎片。这个文件碎片实际上是一个 OLE 对象。例如,片段文件基于的思想是:您可以在字处理程序中突出显示某些文本,然后将其拖动到桌面上,这时就在桌面上创建了一个片段文件。随后,您可以选取该片段文件并将其拖回字处理程序或其他程序中,这时用来创建片段文件的文本将插入到新文档中。在某种程度上它类似于复制和粘贴,不同之处在于它不是将数据临时存储到剪贴板上,而是存储在文件中。

  

现在,在创建这样一个片段文件后,您只能将其放入另一个文档中,就像只能将剪贴板中的内容粘贴到某处一样。在某些情况下,有人向片段文件添加了双击功能,双击片段文件后它会在最初创建它的应用程序中打开。(这和片段文件的内容无关,因此显示片段文件的唯一途径就是询问最初创建它的程序。)

我不清楚此功能是作为一种调试工具加入的,还是为了使用户无需创建用来放入片段文件的虚拟文档就可以看到片段文件的内容。无论哪种原因,病毒编写者都非常喜欢这种“打开最初创建该片段文件的应用程序”功能,因为这将允许他们创建一个片段文件并填充一段数据,声明“最初的应用程序是 cmd.exe,文档碎片就是这个批处理文件”。如果有人双击这个特殊的片段文件查看其内容,片段文件查看器就会传给命令处理器一个批处理文件并告诉它,“请打开这个文件让用户看一看文件内容。”

考虑到片段文件的历史,Shell 团队决定从 Windows Vista® 中删除此功能。为此,团队必须调查片段文件的实际使用率。Shell 团队于是请产品支持组调出了该组的记录,看一看究竟有多少人曾询问过有关片段文件的问题。从理论上来说,常用的功能会有相关的支持求助电话,而不常用的功能则没有(因为根本没人使用它们)。特别要指出的是,片段文件功能没有被归入“极其直观”这一功能分类,因此少量求助电话不能被解释为“呵呵,这个功能太浅显了,没人会打电话来寻求帮助!”

后来产品支持组给出了答案。在过去几年中,该组总共收到了四个相关电话。他们的问题都差不多,“我创建了这个奇怪的文件。它到底是什么?我该如何将其去除?”

Raymond Chen 的网站“The Old New Thing”及同名著作 (Addison-Wesley, 2007) 均讲述了 Windows 的发展历程及 Win32 编程。自从 Raymond 上次见到您至今已有数年,他很关心您家人的情况。

© 2008 Microsoft Corporation 与 CMP Media, LLC.保留所有权利;不得对全文或部分内容进行复制.