檔類型和 URI 關聯模型
平臺
用戶端 - Windows 8
Server - Windows Server 2012
描述
Windows 8 中的文件類型和 URI 關聯模型已變更。 應用程式無法再以程式設計方式將自己設定為檔類型或 URI 的預設處理程式。 相反地,用戶現在一律會控制檔類型或 URI 配置的預設處理程式。
表現
這項變更如何呈現給使用者,取決於應用程式的設計方式,例如:
- 許多應用程式會在每次執行時檢查它們是否為預設值,如果不是,則會提示使用者將其設定為預設值。 不過,由於應用程式無法再準確地查詢以判斷哪一個應用程式是檔類型或 URI 配置的預設處理程式,因此這些作業都無法運作。
- 許多應用程式都有內建的對話框或功能表,或在其安裝程式中,指定應用程式應做為預設值的檔案類型。 不過,由於應用程式無法再以程式設計方式將自己設定為檔案類型或 URI 配置的預設處理程式,因此無法再運作。
緩解
使用者可以執行數件事來配合這些變更:
- 在未指定檔類型、URI 配置或兩者時,系統會提示使用者選擇預設應用程式來處理檔類型、URI 配置或兩者
- 安裝可處理檔類型或 URI 配置的新應用程式之後,會提供使用者變更其預設處理程式的選項
- 默認程式控制面板可讓使用者設定應用程式的預設值,或針對檔案類型、URI 配置或兩者設定預設值;應用程式可以連結至控制面板
- 默認值可以從 Windows 檔案總管變更
溶液
由於這些變更,會提供此 API 指引:
IApplicationAssociationRegistration API 內某些方法呼叫的功能已變更,因此不應再使用。
- 不要呼叫 queryAppIsDefault/QueryAppIsDefaultAll,以判斷應用程式是否為預設值
- 不要 呼叫 queryCurrentDefault ,以判斷哪個應用程式 (如果有) 是目前的預設值
- 不要 呼叫 setAppIsDefault SetAppIsDefault/SetAppIsDefaultAll 來設定預設應用程式
接下來的指導方針如下:
不要 查詢以查看哪些應用程式是檔案類型或 URI 配置的預設處理程式
不要 嘗試監視檔類型或 URI 配置之預設處理程式中的變更
不要 嘗試將應用程式設定為檔案類型或 URI 配置的預設處理程式
不要 嘗試從應用程式內管理檔類型或 URI 配置的預設值
如果您要允許使用者存取預設管理 UI,請 與 設定預設程式 控制面板整合(不再支援應用程式內的管理 UI)
- 呼叫 IApplicationAssociationRegistrationUI::LaunchAdvancedAssociationUI 可讓使用者存取指定應用程式的 '設定預設程式' 控制面板頁面
測試
- 測試以確認應用程式已在 [設定預設程式] 控制面板中正確註冊
- 測試以確認應用程式是否已正確註冊,以在 OpenWith 清單中針對檔案類型、URI 配置或兩者註冊以處理
- 測試以確認新的應用程式通知出現在您的應用程式安裝之後,且使用者叫用檔類型、URI 配置或兩者,您的應用程式已註冊以處理
資源