Windows 机密靠愚蠢显得聪明

Raymond Chen

当您 将 CD 插入计算机时,Windows® 可能会问您它将要做什么 - 即使您上次告诉过它做什么。为什么 Windows 会忘记您的自动播放设置呢?唔,它不是忘记了,而只是重新与您核实一下。

在 Windows XP 处理 CD 自动播放的方式上存在两个问题。第一,许多用户发现,在安装一个支持 CD 自动播放的程序之后,他们不知道如何使该程序成为他们新的默认的 CD 自动播放程序。如果他们以前选择了一个程序并且勾选了“始终执行此操作”,则没有可轻易发现的方法来取消选中这个始终执行标志,使 CD 自动播放对话框再次出现,并给用户机会选择新程序作为默认设置。

第二,某些行为不良的程序,为了将它们自己设置为默认的 CD 自动播放处理程序,在安装后暗中攻击未作文档记录的 CD 自动播放设置,从而覆盖了用户的选择。

简而言之,对于用户来说,这两个问题是:“我刚刚安装了此程序,我想让它成为我的 CD 自动播放程序。”和它的相反说法“我刚刚安装了此程序,我不想让它成为我的 CD 自动播放程序。”

Windows Vista treats autoplay settings globally

Windows Vista treats autoplay settings globally(单击该图像获得较大视图)

Windows XP Service Pack 2 (SP2) 引进了新的 CD 自动播放行为,以试图解决这些问题。当 Windows 看到有新的 CD 自动播放处理程序可用时,现在会再显示一次 CD 自动播放对话框。这样,您就可以选择这个刚安装的新程序,或者在这个刚安装的新程序完全不合理地将自己设置为新的默认播放器的情况下取消选择这个新程序。

升级到 Windows XP SP2 之后,当您第一次插入 CD 时,同样会为您显示这个 CD 自动播放对话框。这是一个“迟来总比不来好”的对话框,面向的是在升级到 Windows XP SP2 之前安装的任何处理程序。

在过去,OS 只需关心如何帮助开发人员与功能对接即可。但在当前的软件前景下,它还要担心如何阻止试图滥用该接口的编程人员。

还可能出现另一种情况,那就是 Windows 忘记了您的自动播放设置。当您插入一个可移除式存储设备(如 USB 驱动器)时,即使您已经选择了一个选项并且勾选了“始终执行此操作”,系统可能还是会提示您。这不是因为 Windows 忘记了您的设置,而是因为它记得太好了。

当您为某个可移除式存储设备选择一个选项时,Windows 记住了该设备的设置。如果您插入一个不同的设备,您会得到一个新提示,因为您没有指定想要这个不同的设备采用什么行为方式。这种设计的目的是,这样您就可以指定,数码相机将默认用于“查看图片”,而音乐播放器将默认用于“播放音乐”。(如果设备没有序列号,则将其插入另一个 USB 端口会将其视为另一个设备。)

为应对由 Windows XP 设计造成的混乱,在 Windows Vista™ 中已更改了该行为。现在,自动播放设置被视为全局设置而不是“按设备”设置。如果您指定“不执行任何操作”,则无论您插入哪个设备,也无论您将设备插入什么位置,Windows Vista 都不会执行任何操作。有时让操作系统显得更聪明的方法就是让它变得更愚蠢。

Raymond Chen的网站“The Old New Thing”(英文)(blogs.msdn.com/oldnewthing) 和同名书籍(Addison-Wesley,2007)论述了 Windows 历史和 Win32 编程。在他的业余时间,众所周知,他的论文被评为七级。

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