ファイルのアクティブ化の処理Handle file activation

重要な APIImportant APIs

アプリは、特定のファイルの種類の既定のハンドラーを登録できます。Your app can register to become the default handler for a certain file type. Windows デスクトップ アプリケーションとユニバーサル Windows プラットフォーム (UWP) アプリの両方を、既定のファイル ハンドラーとして登録できます。Both Windows desktop applications and Universal Windows Platform (UWP) apps can register to be a default file handler. ユーザーがアプリを特定のファイルの種類の既定のハンドラーとして選ぶと、アプリはその種類のファイルを起動したときにアクティブ化されます。If the user chooses your app as the default handler for a certain file type, your app will be activated when that type of file is launched.

ファイルの種類に登録するのは、その種類のファイルのすべてのファイル起動を処理する場合のみにすることをお勧めします。We recommend that you only register for a file type if you expect to handle all file launches for that type of file. アプリをそのファイルの種類に内部的にのみ使う場合、既定のハンドラーに登録する必要はありません。If your app only needs to use the file type internally, then you don't need to register to be the default handler. ファイルの種類に登録する場合は、そのファイルの種類のためにアプリをアクティブ化した際に期待される機能をエンド ユーザーに提供する必要があります。If you do choose to register for a file type, you must provide the end user with the functionality that is expected when your app is activated for that file type. たとえば、.jpg ファイルを表示する画像ビューアー アプリを登録できます。For example, a picture viewer app may register to display a .jpg file. ファイルの関連付けについて詳しくは、「ファイルの種類と URI のガイドライン」をご覧ください。For more info on file associations, see Guidelines for file types and URIs.

以下の手順では、カスタムのファイルの種類 .alsdk を登録する方法と、ユーザーによって .alsdk ファイルが起動されたときにアプリをアクティブ化する方法について説明します。These steps show how to register for a custom file type, .alsdk, and how to activate your app when the user launches an .alsdk file.

  、UWP アプリで特定の Uri とファイル拡張機能用に予約された組み込みのアプリと、オペレーティング システムでします。Note  In UWP apps, certain URIs and file extensions are reserved for use by built-in apps and the operating system. 予約されている URI またはファイル拡張子にアプリを登録しようとしても無視されます。Attempts to register your app with a reserved URI or file extension will be ignored. 詳しくは、「予約済みのファイルと URI スキーム名」をご覧ください。For more information, see Reserved file and URI scheme names.

手順 1:パッケージ マニフェストで拡張機能ポイントを指定します。Step 1: Specify the extension point in the package manifest

アプリは、パッケージ マニフェストに一覧表示されるファイル拡張子のアクティブ化イベントだけを受け取ります。The app receives activation events only for the file extensions listed in the package manifest. アプリが .alsdk 拡張子を持つファイルを処理することを示す方法は次のとおりです。Here's how you indicate that your app handles the files with the .alsdk extension.

  1. ソリューション エクスプローラーで、package.appxmanifest をダブルクリックしてマニフェスト デザイナーを開きます。In the Solution Explorer, double-click package.appxmanifest to open the manifest designer. [宣言] タブを選び、 [使用可能な宣言] ドロップダウンから [ファイルの種類の関連付け] を選んで [追加] をクリックします。Select the Declarations tab and in the Available Declarations drop-down, select File Type Associations and then click Add. ファイルの関連付けで使われる識別子について詳しくは、「プログラムの識別子」をご覧ください。See Programmatic Identifiers for more details of identifiers used by file associations.

    マニフェスト デザイナーで指定することができる各フィールドについて、以下で簡単に説明します。Here is a brief description of each of the fields that you may fill in the manifest designer:

フィールドField 説明Description
表示名Display Name ファイルの種類のグループの表示名を指定します。Specify the display name for a group of file types. 表示名は、コントロール パネル[既定のプログラムを設定する] でファイルの種類を識別するために使われます。The display name is used to identify the file type in the Set Default Programs on the Control Panel.
LogoLogo デスクトップとコントロール パネル[既定のプログラムを設定する] でファイルの種類を識別するために使われるロゴを指定します。Specify the logo that is used to identify the file type on the desktop and in the Set Default Programs on the Control Panel. ロゴを指定しない場合は、アプリケーションの小さいロゴが使われます。If no Logo is specified, the application’s small logo is used.
に関するヒントInfo Tip ファイルの種類のグループの InfoTip を指定します。Specify the info tip for a group of file types. このヒントのテキストは、ユーザーがこの種類のファイルのアイコンの上にマウス ポインターを置くと表示されます。This tool tip text appears when the user hovers on the icon for a file of this type.
名前Name 同じ表示名、ロゴ、InfoTip、編集フラグを共有するファイルの種類のグループの名前を選びます。Choose a name for a group of file types that share the same display name, logo, info tip, and edit flags. このグループ名は、アプリの更新後も維持される名前にします。Choose a group name that can stay the same across app updates. 名前はすべて小文字である必要があります。Note The Name must be in all lower case letters.
コンテンツの種類Content Type 特定のファイルの種類の MIME コンテンツの種類 (image/jpeg など) を指定します。Specify the MIME content type, such as image/jpeg, for a particular file type. 許可されているコンテンツの種類についての重要な注意事項: 予約または禁止されるため、パッケージ マニフェストに入力することはできませんの MIME コンテンツ タイプのアルファベット順の一覧を次に示します:アプリケーション/強制ダウンロードアプリケーションまたはオクテット ストリームアプリケーション、または不明なアプリケーション/x-msdownloadします。Important Note about allowed content types: Here is an alphabetic list of MIME content types that you cannot enter into the package manifest because they are either reserved or forbidden: application/force-download, application/octet-stream, application/unknown, application/x-msdownload.
ファイルの種類File type 登録するファイルの種類を指定します。先頭にはピリオドを付けます (例: ".jpeg")。Specify the file type to register for, preceded by a period, for example, “.jpeg”. 予約されており、禁止されているファイルの種類: 参照してください予約済みの URI スキームの名前とファイルの種類のアルファベット順の一覧ファイルの種類の組み込みのアプリを予約または禁止されるため、UWP アプリを登録することはできません。Reserved and forbidden file types: See Reserved URI scheme names and file types for an alphabetic list of file types for built-in apps that you can't register for your UWP apps because they are either reserved or forbidden.
  1. [名前]alsdk と入力します。Enter alsdk as the Name.
  2. [ファイルの種類].alsdk と入力します。Enter .alsdk as the File Type.
  3. 入力"イメージ\Icon.png"のロゴとして。Enter “images\Icon.png” as the Logo.
  4. Ctrl + S キーを押して、変更を package.appxmanifest に保存します。Press Ctrl+S to save the change to package.appxmanifest.

上記の手順により、次のような Extension 要素がパッケージ マニフェストに追加されます。The steps above add an Extension element like this one to the package manifest. windows.fileTypeAssociation カテゴリは、アプリが .alsdk 拡張子を持つファイルを処理することを示しています。The windows.fileTypeAssociation category indicates that the app handles files with the .alsdk extension.

      <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:適切なアイコンを追加します。Step 2: Add the proper icons

ファイルの種類の既定となるアプリは、そのアイコンがシステムのさまざまな場所に表示されます。Apps that become the default for a file type have their icons displayed in various places throughout the system. アイコンは、たとえば次の場所に表示されます。For example, these icons are shown in:

  • エクスプローラーの項目ビュー、コンテキスト メニュー、リボンWindows Explorer Items View, context menus, and the Ribbon
  • [既定のプログラム] コントロール パネルDefault programs Control Panel
  • ファイル ピッカーFile picker
  • スタート画面での検索結果Search results on the Start screen

ロゴがこれらの場所に表示されるように、プロジェクトに 44 x 44 のアイコンを含めます。Include a 44x44 icon with your project so that your logo can appear in those locations. アプリのタイルのロゴの外観を調和させ、アイコンを透明にするのではなく、アプリの背景色を使います。Match the look of the app tile logo and use your app's background color rather than making the icon transparent. パディングせずにロゴを端まで拡張します。Have the logo extend to the edge without padding it. アイコンは、白い背景でテストします。Test your icons on white backgrounds. アイコンについて詳しくは、「タイルとアイコン アセットのガイドライン」をご覧ください。See Guidelines for tile and icon assets for more details about icons.

手順 3:アクティブ化されたイベントを処理します。Step 3: Handle the activated event

OnFileActivated イベント ハンドラーは、すべてのファイル アクティブ化イベントを受け取ります。The OnFileActivated event handler receives all file activation events.

protected override void OnFileActivated(FileActivatedEventArgs args)
{
       // TODO: Handle file activation
       // The number of files received is args.Files.Size
       // 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
}

注意

ファイルのコントラクトを使用してを起動するとその [戻る] ボタンを受け取り、ユーザー バックアップ、アプリの起動画面にアプリの前のコンテンツにしないことを確認します。When launched via File Contract, make sure that Back button takes the user back to the screen that launched the app and not to the app's previous content.

新しい XAML を作成することをお勧めします。フレームアクティブ化イベントのごとに新しいページが開きます。We recommend that you create a new XAML Frame for each activation event that opens a new page. これにより、新しい XAML フレームのナビゲーション バック スタックは、アプリが中断されている場合は、現在のウィンドウに対して持つ前のコンテンツが含まれません。That way, the navigation backstack for the new XAML Frame doesn't contain any previous content that the app might have on the current window when suspended. 1 つの XAML を使用する場合フレーム起動、ファイルの契約では、しする必要がありますをオフにする、ページで、フレームの新しいページに移動する前にジャーナルのナビゲーションです。If you decide to use a single XAML Frame for Launch and for File Contracts, then you should clear the pages in the Frame's navigation journal before navigating to a new page.

ファイルのアクティブ化を使用して、アプリを起動すると、ユーザー、アプリの最上位のページに戻るには、UI などを検討してください。When your app is launched via File activation, you should consider including UI that allows the user to go back to the top page of the app.

注釈Remarks

受け取るファイルは、信頼できないソースからのファイルである可能性があります。The files that you receive could come from an untrusted source. 操作する前に、ファイルのコンテンツを検証することをお勧めします。We recommend that you validate the content of a file before taking action on it.

完全な例Complete example

概念Concepts

処理手順Tasks

ガイドラインGuidelines

リファレンスReference