共用方式為


指定適用於副檔名的檔案處理常式

有許多方法可用於判斷哪些應用程式能處理具有特定副檔名的檔案。 OpenWithList 和 OpenWithProgids 動詞是指定副檔名之登錄項目下,檔案處理常式的兩種方式。

OpenWithList 動詞

當您以滑鼠右鍵按下 Windows 檔案總管中的檔案時,您會看到 [開啟] 命令。 如果有多個產品與延伸模組相關聯,您會看到 [開啟方式] 子功能表。

您可以在 HKEY_CLASSES_ROOT 中設定副檔名的 OpenWithList 機碼,以註冊不同的應用程式開啟延伸模組。 此機碼下列出的副檔名應用程式會出現在 [開啟方式] 對話方塊中的 [推薦程式] 標題底下。 下列範例顯示註冊以開啟 .vcproj 副檔名的應用程式。

HKEY_CLASSES_ROOT\
   .vcproj\
      (default)="VisualStudio.vcproj.14.0"
      OpenWithList\
         devenv.exe

注意

指定應用程式的機碼來自 [HKEY_CLASSES_ROOT\Applications] 底下的清單。

藉由新增 OpenWithList 金鑰,即使您的另一個應用程式取得延伸模組的擁有權,您仍宣告應用程式支援副檔名。 這可能是您應用程式的未來版本或其他應用程式。

OpenWithProgIDs

程式設計識別碼 (ProgID) 是可識別應用程式或 COM 物件的易記 ClassID 版本。 每個可共同建立的物件,都應該有自己的 ProgID。 例如,VisualStudio.DTE.7.1 啟動 Visual Studio .NET 2003,而 VisualStudio.DTE.10.0 啟動 Visual Studio。 身為專案類型或專案項目類型的擁有者,您必須為副檔名建立版本特定的 ProgID。 這些 ProgID 可能是重複的,有多個 ProgID 可能會啟動相同的應用程式。 如需詳細資訊,請參閱註冊適用於副檔名的動詞命令

對於設定版本的檔案 ProgID 使用下列命名慣例,以避免與其他廠商的註冊重複:

副檔名 設定版本的 ProgID
.extension ProductName. extension.versionMajor.versionMinor

透過將已設定版本的 ProgID 當成值加入至 HKEY_CLASSES_ROOT\<extension>\OpenWithProgids 機碼,就可以註冊開啟特定副檔名的不同應用程式。 此登錄機碼包含與副檔名相關聯的替代 ProgID 清單。 與列出的 ProgID 相關聯的應用程式會出現在 [開啟方式]] 子功能表。 如果在 OpenWithListOpenWithProgids 機碼中指定相同的應用程式,作業系統會合併重複項。

注意

只有 Windows XP 支援 OpenWithProgids 機碼。 因為其他作業系統會忽略此機碼,所以請勿將其當成檔案處理常式的唯一註冊。 使用此機碼可在 Windows XP 中提供更好的使用者體驗。

將所需的 ProgID 新增為類型 REG_NONE 的值。 下列程式碼提供註冊 ProgID 的副檔名範例 (ext)。

HKEY_CLASSES_ROOT\
   .ext\
      (default)="MyProduct.ext.14.0"
      OpenWithProgids
         progid        REG_NONE (zero-length binary value)
         otherprogid   REG_NONE (zero-length binary value)

指定為副檔名預設值的 ProgID 是預設檔案處理常式。 如果您針對舊版 Visual Studio 隨附的副檔名或可由其他應用程式接管的副檔名而修改 ProgID,則必須註冊 OpenWithProgids 副檔名機碼,並在清單中指定新的 ProgID,以及您支援的舊 ProgID。 例如:

HKEY_CLASSES_ROOT\
   .vcproj\
      (default)="VisualStudio.vcproj.14.0"
      OpenWithProgids
         vcprojfile              //old progid
         VisualStudio.vcproj.12.0 //old progid
         VisualStudio.vcproj.14.0 //new progid

如果舊的 ProgID 有與其相關聯的動詞,這些動詞也會出現在捷徑功能表中的開啟方式產品名稱底下。