Share via


處理檔案啟用

重要 API

您的應用程式可以註冊成為某種文件類型的預設處理程序。 Windows 桌面應用程式和通用 Windows 平台 (UWP) 應用程式都可以註冊為預設檔案處理程序。 如果使用者選擇您的應用程式作為特定文件類型的預設處理程序,則啟動該類型的文件時將啟動您的應用程式。

如果您希望處理該類型檔案的所有文件啟動,我們建議您僅註冊該檔案類型。 如果您的應用程式僅需要在內部使用檔案類型,則無需註冊為預設處理程序。 如果您選擇註冊檔類型,則必須為終端使用者提供針對該檔案類型啟用應用程式時預期的功能。 例如,圖片查看器應用程式可能會註冊以顯示.jpg檔案。 如需檔案關聯的詳細資訊,請參閱檔案類型和 URI 的指導方針。

這些步驟示範如何註冊自定義檔類型 .alsdk,以及如何在用戶啟動 .alsdk 檔案時啟用您的應用程式。

注意在 UWP 應用程式中,某些 URI 和延伸模組名會保留供內建應用程式和作業系統使用。 系統會忽略嘗試向保留 URI 或檔案延伸模組註冊您的應用程式。 如需詳細資訊,請參閱保留的檔案和 URI 配置名稱

步驟 1:指定封裝指令清單中的延伸模組點

應用程式僅接收包清單中列出的檔案延伸模組的啟動事件。 以下是您如何指示您的應用程式處理具有 .alsdk 延伸模組的檔案。

  1. 方案總管中,按兩下「package.appxmanifest」以打開清單設計器。 選擇聲明索引標籤,然後在可用聲明下拉式清單中選擇檔案類型關聯,然後按一下新增。 有關檔案關聯使用的標識符的更多詳細資訊,請參閱編程標識符

    以下是您可以填入指令清單設計工具之每個欄位的簡短描述:

欄位 描述
顯示名稱 指定一組檔案類型的顯示名稱。 顯示名稱用於識別控制面板設定預設程式中的檔案類型。
標誌 指定用於識別桌面上和控制面板上的設定預設程式中的檔案類型的標誌。 如果未指定標誌,則會使用應用程式的小型標誌。
資訊提示 指定檔案類型群組的資訊提示。 當使用者將滑鼠懸停在此類文件的圖示上時,會出現此工具提示文字。
名稱 為共用相同顯示名稱、標誌、資訊提示和編輯旗標的檔案類型群組選擇名稱。 選擇可在應用程式更新之間維持不變的組名。 注意名稱必須全部以小寫字母為單位。
內容類型 指定特定檔案類型的 MIME 內容類型,例如 image/jpeg關於允許的內容類型的重要說明:以下是按字母順序排列的MIME 內容類型列表,您無法將這些內容類型輸入到套件清單中,因為它們是保留的或禁止的:application/force-downloadapplication/ octet-streamapplication/unknownapplication/x-msdownload
檔案類型 指定要註冊的檔案類型,前面加一個句點,例如「.jpeg」。 保留和禁止的檔案類型:請參閱保留的 URI 方案名稱和檔案類型,以取得按字母順序排列的內建應用程式的檔案類型列表,這些應用程式因被保留或被禁止而無法註冊到 UWP 應用程式。
  1. 輸入 alsdk 作為名稱
  2. 輸入 .alsdk 作為檔案類型
  3. 輸入「images\Icon.png」作為標誌。
  4. 按 Ctrl+S 將變更儲存至 package.appxmanifest。

上述步驟會將如下的 Extension 元素新增至套件指令清單。 windows.fileTypeAssociation 類別指示應用程式處理具有 .alsdk 延伸模組的檔案。

      <Extensions>
        <uap:Extension Category="windows.fileTypeAssociation">
          <uap:FileTypeAssociation Name="alsdk">
            <uap:Logo>images\icon.png</uap:Logo>
            <uap:SupportedFileTypes>
              <uap:FileType>.alsdk</uap:FileType>
            </uap:SupportedFileTypes>
          </uap:FileTypeAssociation>
        </uap:Extension>
      </Extensions>

步驟 2:新增適當的圖示

成為檔案類型預設值的應用程式,其圖示會顯示在整個系統的各個位置。 例如,這些圖示會顯示在:

  • Windows 資源管理器專案視圖、上下文功能表和功能區
  • 預設程式控制面板
  • 檔案選擇器
  • 開始畫面上的搜尋結果

在專案中包含 44x44 圖示,讓您的標誌可以出現在這些位置。 比對應用程式磚標誌的外觀並使用應用程式的背景顏色,而不是使圖示透明。 讓標誌延伸至邊緣,而不會填補它。 在白色背景上測試您的圖示。 關於圖示的更多詳細資訊,請參閱磚和圖示資源指南

步驟 3:處理啟動的事件

OnFileActivated 事件處理程式會接收所有檔案啟用事件。

protected override void OnFileActivated(FileActivatedEventArgs args)
{
       // TODO: Handle file activation
       // The number of files received is args.Files.Count
       // The name of the first file is args.Files[0].Name
}
Protected Overrides Sub OnFileActivated(ByVal args As Windows.ApplicationModel.Activation.FileActivatedEventArgs)
      ' TODO: Handle file activation
      ' The number of files received is args.Files.Size
      ' The name of the first file is args.Files(0).Name
End Sub
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs const& args)
{
    // TODO: Handle file activation.
    auto numberOfFilesReceived{ args.Files().Size() };
    auto nameOfTheFirstFile{ args.Files().GetAt(0).Name() };
}
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs^ args)
{
    // TODO: Handle file activation
    // The number of files received is args->Files->Size
    // The name of the first file is args->Files->GetAt(0)->Name
}

注意

透過檔案合約啟動時,請確保後退按鈕將使用者帶回啟動應用程式的螢幕,而不是應用程式之前的內容。

建議您為每個開啟新頁面的啟用事件建立新的 XAML Frame。 這樣,新 XAML 架構的導航後退堆疊不包含應用程式在暫停時可能在目前視窗上具有的任何先前內容。 如果您決定使用單一 XAML Frame for Launch 和 for File Contracts,則您應該先清除 Frame 瀏覽紀錄中的頁面,再流覽至新的頁面。

當您的應用程式透過檔案啟用啟動時,您應該考慮包含可讓使用者返回應用程式頂端頁面的 UI。

備註

您收到的檔案可能來自不受信任的來源。 建議您先驗證檔案的內容,再對檔案採取動作。

完整範例

概念

工作

指導方針

參考