(SPAD) 设置程序访问和计算机默认值

本主题讨论 控制面板 中 (SPAD) 功能设置程序访问和计算机默认值。 SPAD 位于 Windows Vista 和更高版本的 Windows 中的“默认程序”控制面板项下。 在 Windows XP 中,它位于 “添加或删除程序” 项中,标题为 “设置程序访问和默认值”。

重要

本主题不适用于Windows 10。 默认文件关联的工作方式在Windows 10中发生了变化。 有关详细信息,请参阅本文中的更改Windows 10处理默认应用的方式部分。

 

使用“设置程序访问和计算机默认值”工具

注意

从Windows 8起,SPAD 会按用户为当前用户配置默认值。 在Windows 8之前,SPAD 设置每台计算机的默认值。 当用户尚未配置每用户默认值时,系统会提示他们设置每用户默认值,而不是回退到每计算机的默认值上。 如果在 Windows Vista 和 Windows 7 中用户以前设置了每计算机默认值,则可能从未看到每台计算机的默认值,因为每用户默认值将覆盖这些操作系统中的每台计算机默认值。

 

在 Windows XP 中,“设置程序访问和默认值”是控制面板的“添加或删除程序”项中的一个选项。 在 Windows Vista 及更高版本中,它位于“默认程序”控制面板项下。 对于 已注册 的程序,它执行以下功能:

  • 允许为每个客户端类型选择默认程序, (最多只能) Windows 7。
  • 启用对程序的图标、快捷方式和菜单项的显示的控制。
  • 提供一组预设默认程序选项。 (Windows XP Service Pack 1 (SP1 仅) )

此工具用于以下五种客户端类型。

  • 浏览者
  • 电子邮件
  • 即时混乱程序
  • 媒体播放器
  • 适用于 Java 的虚拟机

设置程序访问和计算机默认值概述

以下屏幕截图中显示了“Windows 8设置程序访问和计算机默认值”页。

设置程序访问和计算机默认条目视图的屏幕截图

向用户提供了三个可能的配置选项,OEM 提供名为“计算机制造商”的第四个选项的选项。

Microsoft Windows

Microsoft Windows 配置由 Windows 提供的一组默认程序组成,如以下屏幕截图所示。

设置程序访问权限和默认 microsoft 选项的屏幕截图

选择 Microsoft Windows 配置还可以显示为五种客户端类型之一注册的每个程序的图标、快捷方式或菜单条目。 这些图标、快捷方式和菜单条目可供用户在 “开始” 菜单或“开始”屏幕、桌面上以及添加到的所有其他位置中使用。

非 Microsoft

Microsoft 配置(如以下屏幕截图所示)用于用户系统上未由 Microsoft 生成的已注册应用程序。 这些应用程序可以预安装在用户的系统上,也可以是用户已安装的非 Microsoft 应用程序。

注意

应用程序必须注册才能显示在此页上。 有关注册应用程序的说明,请参阅 使用客户端类型注册程序

 

设置程序访问权限和默认值非 microsoft 选项的屏幕截图

选择 “非 Microsoft ”选项还会删除对 Microsoft Windows 配置中列出的 Microsoft 程序的图标、快捷方式和菜单条目的访问权限,以便所有具有它们的客户端类型。 这些 Microsoft 图标、快捷方式和菜单条目将从 “开始 ”菜单、桌面以及添加它们的其他位置中删除。

自定义

自定义配置(如以下屏幕截图所示)使用户能够使用注册为五种客户端类型默认可能性的 Microsoft 和非 Microsoft 程序的任意组合来自定义其系统。 这是 Windows 2000 Service Pack 3 (SP3) 中唯一可用的四个选项之一。

设置程序访问权限和默认值自定义选项的屏幕截图

Microsoft Windows和非 Microsoft 配置中提供的所有选项均可供用户在“自定义”部分中使用,以及不属于 Windows 的任何其他已安装的 Microsoft 应用程序。 预选 “使用当前 Web 浏览器 ”单选按钮,如前面的屏幕截图所示。 无法通过 UI 确定当前默认浏览器。 在 Windows 中调用 Web 链接或文件是发现当前默认浏览器的唯一方法。

当用户为某个程序选择“启用对此程序的访问检查框时,该程序的图标、快捷方式和菜单条目将显示在”开始“菜单或”开始“屏幕、桌面或安装它们的任何其他位置。 清除此选项应会删除这些图标、快捷方式和菜单条目,但是,这些选项的行为方式完全由应用程序供应商决定。 Windows 不控制如何在整个 UI 中启用或删除访问。 此外,请务必了解应用程序不需要注册 “设置程序访问”和“计算机默认值”。

计算机制造商

某些系统上的 SPAD 窗口中可以显示名为“计算机制造商”的第四个类别。 计算机制造商可以选择使用一组自定义默认值预配置其计算机,从 自定义 配置中提供的相同选项中进行选择。 (出于说明目的,注册了一组名为 LitWare 的虚构应用程序,以用于所有客户端类型。) 用户可以随时通过选择“ 计算机制造商 ”选项返回到计算机制造商的默认配置,如以下 Windows XP 屏幕截图所示。

注意

此配置并不显示在所有系统上。 有关详细信息,请参阅 OEM 预安装工具包 (OPK) 。

 

设置程序访问权限和默认计算机制造商选项的屏幕截图

LastUserInitiatedDefaultChange 注册表值

LastUserInitiatedDefaultChange 值已添加到注册表中,以帮助应用程序识别和尊重用户的默认选择。 该值以 FILETIME 结构的形式保存REG_BINARY数据,该结构包含用户上次通过 “设置程序访问 (和计算机默认值 ”工具更改默认选择时协调世界时 (UTC) ) 的日期和时间。 此值位于以下子项下。

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         ClientTypeName
            LastUserInitiatedDefaultChange = FILETIME

以下方案将此值用于监视文件关联的应用程序。

  1. 应用程序在内部记录上次设置为其客户端类型的默认程序的时间, (安装时或以后) 。
  2. 如果后台帮助程序) ,应用程序检测到其客户端类型的默认程序已更改为自身或它所代表 (的应用程序。 在 Windows 8 中不受支持。
  3. 应用程序读取 LastUserInitiatedDefaultChange 的值, (上一个用户启动的默认更改) 的时间戳,并将其与存储的时间戳值进行比较,以便自己选择为默认值。
  4. 如果 LastUserInitiatedDefaultChange 晚于应用程序的存储值,则该应用程序不应执行任何操作,因为更改是由用户通过 “设置程序访问和默认值” 工具显式请求的。
  5. 应用程序不再监视该文件关联,直到再次选择它作为默认值。 在 Windows 8 中不受支持。

通过遵守此类方案,用户的愿望得到尊重,并维护其系统的最终所有权。

筛选添加或删除程序列表

注意

本部分适用于 Windows XP Service Pack 2 (SP2) 及更高版本以及 Windows Server 2003 及更高版本。

 

在 Windows XP 和 Windows Server 2003 中,用户可筛选“添加或删除程序”下的“更改或删除程序”选项卡中显示的应用程序列表,以排除应用程序更新的条目。 在这些版本的 Windows 中,这可以通过窗口顶部的“显示更新检查”框来实现。 默认情况下未选择 “显示更新 ”选项,因此除非用户选择显示更新,否则 不会 显示更新。 “添加或删除程序”关闭时,对检查框状态的更改将保留;如果用户选择显示更新,它们将继续显示,直到用户清除检查框。

注意

Windows XP SP2 更新本身是筛选的例外。 无论检查框状态如何,它始终都会显示。

 

在 Windows Vista 及更高版本中,应用程序更新显示在单独的页面上,控制面板专用于更新。 当用户单击“ 查看已安装的更新 ”任务链接时,将显示此页面。 没有用户可选择的选项,可以在与已安装的程序相同的页面上显示更新。 尽管 UI 发生了更改,但注册为已安装程序的更新的机制仍与早期版本的 Windows 相同。

使用 Windows Installer 的 Microsoft 和非 Microsoft 应用程序无需执行任何进一步操作即可将其更新识别为更新。 不使用 Windows Installer 的非 Microsoft 应用程序必须在注册表中声明某些值作为其安装的一部分,才能识别为现有程序的更新。

以下示例演示了要声明安装哪些注册表值,以便将其识别为对现有程序的更新。

  1. 父应用程序必须在 Microsoft\\\Windows\CurrentVersion\ 卸载HKEY_LOCAL_MACHINE子项下的子项中添加其卸载信息。 有关使用卸载子项的详细信息,请参阅安装主题。
  2. 对父应用程序的每次更新还必须将其信息添加为 Uninstall 子项的子项。 它应使用其选择的特定命名约定,以避免与其他程序发生潜在冲突。 以下约定由 Microsoft 保留为子项名称,以便与 Windows 更新一起使用。
    • IEUpdate
    • OEUpdate
    • “KB”后跟六位数字,例如“KB123456”
    • “Q”后跟六位数字,例如“Q123456”
    • 六位数字,例如“123456”
  3. 除了为父应用程序添加的标准卸载信息外,每个更新的子项还必须包含以下三个条目中的两个。 其值的类型为 REG_SZ。
    • ParentKeyName。 此值是必需的。 这是在步骤 1 中声明的父级子项的名称。 这会将更新与程序相关联。
    • ParentDisplayName。 此值是必需的。 如果没有与 ParentKeyName 中命名的子项匹配,此值将用作要显示在 “添加或删除程序”中的占位符父程序。
    • InstallDate。 此值是可选的。 它应使用 窗体 yyyymmdd 来指定日期。 此日期用于 UI 中更新条目旁边显示的 “安装时间” 信息。 如果没有 InstallDate 条目,或者存在但未分配任何值,则会发生以下情况:
      • Windows Vista 和 Windows 7 以外的操作系统版本:显示“未 安装” 信息。
      • Windows Vista 及更高版本:使用默认日期。 这是该更新的子项下任何条目的“上次修改”日期。 这通常是将更新添加到注册表中的日期。 但是,由于它是“上次修改”的日期,因此对任何子项的任何后续更改都会导致 InstallDate 值更改为该更改的日期。

以下示例显示了 LitWare 豪华版应用程序更新的相关注册表项。

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               Uninstall
                  LitWare
                     DisplayName = LitWare Deluxe
                     UninstallString = "C:\Program Files\LitWare\LitWare Deluxe\litware.exe" /uninstall
                  LitWare_Update123456
                     DisplayName = LitWare Deluxe Update 123456. Fixes printing problems.
                     UninstallString = "C:\Program Files\LitWare\LitWare Deluxe\Updates\123456.exe" /uninstall
                     ParentKeyName = LitWare
                     ParentDisplayName = LitWare Deluxe
                     InstallDate = 20050513

不提供相应注册表信息(例如在此选项可用之前生成的更新)的非 Microsoft 应用程序将继续在已安装的程序列表中正常显示,并且不会筛选掉。

Windows Vista 和 Windows 7 以外的操作系统版本中的更新筛选通常是用户控制的设置,应用程序应遵循此类设置。 但是,在企业环境中,管理员可以控制是否向用户提供通过 DontGroupPatches 注册表值筛选更新的选项,如以下示例所示。

HKEY_LOCAL_MACHINE
   Software
      Microsoft
         Windows
            CurrentVersion
               policies
                  Uninstall
                     DontGroupPatches = 0 or 1

此值的类型REG_DWORD,解释如下。

DontGroupPatches 值 含义
0 向用户显示“显示更新检查框。 筛选取决于用户是否已选中此框。
1 将从 UI 中删除“显示更新检查框。 不会从列表中筛选汇报。 此值在引入 “显示更新” 功能之前,实质上还原为 Windows XP SP1 行为。
DontGroupPatches 条目不存在 这等效于将值设置为 0。

 

DontGroupPatches 在 Windows Vista 和 Windows 7 中不起作用,其中 UI 不包含检查框,并且始终筛选已注册的更新。

注意

策略仅由管理员设置。 应用程序不应更改此值。 有关如何设置基于注册表的组策略的详细信息,请参阅 组策略Windows Server 组策略

 

其他资源

文件关联的最佳做法

文件关联示例方案

在 Windows Vista 及更高版本中管理默认应用程序的指南

默认程序