文件类型和 URI 关联模型
平台
客户端 - Windows 8
服务器 - Windows Server 2012
说明
Windows 8中,文件类型和 URI 关联模型已更改。 应用无法再以编程方式将自身设置为文件类型或 URI 的默认处理程序。 现在,用户始终控制文件类型或 URI 方案的默认处理程序。
表现
此更改如何呈现给用户取决于应用的设计方式,例如:
- 许多应用检查每次运行时查看它们是否为默认值,如果不是,则提示用户将其设置为默认值。 但是,由于应用无法再准确查询以确定哪个应用是文件类型或 URI 方案的默认处理程序,因此这两种操作都不起作用。
- 许多应用在其安装程序中内置了对话框或菜单,用于指定应用应用作默认文件类型的文件类型。 但是,由于应用无法再以编程方式将自身设置为文件类型或 URI 方案的默认处理程序,因此这不再有效。
缓解措施
用户可以执行以下几项操作来适应这些更改:
- 在未指定文件类型和/或 URI 方案时,系统会根据上下文提示用户选择默认应用来处理两者
- 安装可处理文件类型或 URI 方案的新应用后,为用户提供更改其默认处理程序的选项
- 默认程序控制面板允许用户为应用或文件类型和/或 URI 方案设置默认值;应用可以链接到控制面板
- 可以从 Windows 资源管理器更改默认值
解决方案
由于这些更改,提供了以下 API 指南:
IApplicationAssociationRegistration API 中某些方法调用的功能已更改,不应再使用。
- 请勿 调用 QueryAppIsDefault/QueryAppIsDefaultAll 以确定某个应用是否为默认应用
- 请勿 调用 QueryCurrentDefault 来确定哪个应用 (是否有任何) 为当前默认值
- 请勿 调用 SetAppIsDefault/SetAppIsDefaultAll 来设置默认应用
今后的指导是:
不要 查询以查看哪个应用是文件类型或 URI 方案的默认处理程序
不要 尝试监视默认处理程序中文件类型或 URI 方案的更改
不要 尝试将应用设置为文件类型或 URI 方案的默认处理程序
不要 尝试从应用内管理文件类型或 URI 方案的默认值
如果希望允许应用的用户访问默认管理 UI, (应用内的管理 UI 不再受支持,请与“设置默认程序”控制面板集成)
- 调用 IApplicationAssociationRegistrationUI::LaunchAdvancedAssociationUI 允许用户访问指定应用的“设置默认程序”控制面板页面
测试
- 测试以验证应用是否在“设置默认程序”控制面板中正确注册
- 测试以验证应用是否正确注册,以显示在 OpenWith 列表中,适用于它们注册以处理的文件类型和/或 URI 方案
- 测试以验证新应用通知在安装应用且用户调用应用已注册以处理的文件类型和/或 URI 方案之后是否显示
资源