共用方式為


處理 Windows 應用程式中的檔案激活

您的應用程式可以註冊成為特定檔類型的默認處理程式。 Windows 傳統型應用程式和通用 Windows 平臺 (UWP) 應用程式都可以註冊為預設檔案處理程式。 如果使用者選擇您的應用程式作為特定檔案類型的默認處理程式,當啟動該類型的檔案時,將會啟動您的應用程式。

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

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

注意

在 Windows 中,某些 URI 和檔案副檔名會保留供內建應用程式和作業系統使用。 系統會忽略嘗試使用保留的 URI 或檔案副檔名註冊您的應用程式。 請參閱 保留的 URI 配置名稱和檔案類型,以取得您無法註冊應用程式的 URI 配置字母清單,因為這些配置是保留或禁止的。

重要 API

本主題中會使用下列 API:

步驟 1:指定封裝指令清單中的擴充點

應用程式只會針對套件指令清單中列出的擴展名接收啟用事件。 以下是您指示應用程式使用 .alsdk 擴展名來處理檔案的方式。

  1. 在 [方案總管]中,按兩下 package.appxmanifest 以開啟清單設計工具。 選取 [宣告] 索引標籤,然後在 [可用宣告] 下拉式清單中,選取 [檔案類型關聯],然後按一下 [新增]。 如需檔案關聯所使用的標識碼詳細數據,請參閱 程式設計標識碼

    以下是您可以在清單設計器中填入的每個欄位的簡短描述:

描述
顯示名稱 指定檔案類型群組的顯示名稱。 顯示名稱是用來識別 [控制面板][設定預設程式] 中的檔案類型。
標誌 指定用來辨識桌面上檔案類型的標誌,並在 [控制面板][設定預設程式] 中指定 。 如果未指定標誌,則會使用應用程式的小型標誌。
資訊提示 指定 資訊提示 用於一組檔案類型。 當使用者將滑鼠停留在此類型檔案的圖示上時,就會顯示此工具提示文字。
名稱 為共用相同顯示名稱、標誌、資訊提示和編輯旗標的檔案類型群組選擇名稱。 選擇可在應用程式更新之間維持不變的組名。 附註 [名稱] 必須全部以小寫字母為單位。
內容類型 為特定檔案類型指定 MIME 內容類型,例如 image/jpeg允許內容類型的重要注意事項: 以下是 MIME 內容類型的字母清單,您無法輸入套件指令清單,因為它們是保留或禁止的:應用程式/強制下載application/octet-streamapplication/unknownapplication/x-msdownload
檔案類型 指定要註冊的檔類型,前面加上句號,例如“.jpeg”。 保留與禁止的檔案類型: 請參閱 保留的 URI 配置名稱與檔案類型,查看內建應用程式檔案類型字母順序清單。由於這些類型是保留或禁止的,因此您無法為您的 UWP 應用程式註冊。
  1. 輸入 alsdk 作為 名稱
  2. 輸入 .alsdk 作為 檔案類型
  3. 輸入「影像\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
}

注意

透過 [檔案合約] 啟動時,請確定 [上一頁] 按鈕會將使用者帶回啟動應用程式的畫面,而不是應用程式先前的內容。

注意

在 WinUI 應用程式中,在 App.OnLaunched 中(或實際上隨時)您可以呼叫 (AppInstance.GetActivatedEventArgs),以擷取啟動的事件自變數,並檢查它們以判斷應用程式是如何啟動的。 如需 UWP 與 WinUI 應用程式之間生命週期差異的詳細資訊,請參閱 應用程式生命週期功能移轉

建議您為每個開啟新頁面的啟用事件建立新的 XAML Frame。 如此一來,新 XAML Frame 的流覽後置不會包含應用程式在暫停時可能在目前視窗上擁有的任何先前內容。 如果您決定針對啟動和檔案合約使用單一 XAML Frame,則您應該先清除 Frame瀏覽紀錄中的頁面,再流覽至新頁面。

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

備註

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