パッケージ アプリのアクティブ化情報の取得

Windows 10 Version 1809 以降、パッケージ化されたデスクトップ アプリで AppInstance.GetActivatedEventArgs メソッドを呼び出して、スタートアップ時にアプリの特定の種類のアクティブ化情報を取得できるようになりました。 たとえば、このメソッドを呼び出すことにより、ファイルを開く、対話型トーストをクリックする、プロトコルを使用するなどの処理から、アプリのアクティブ化に関連する情報を取得できます。 Windows 10 バージョン 2004 以降、この機能は、外部の場所にあるパッケージ アプリでもサポートされます (「外部の場所でパッケージ化してパッケージ ID を付与する」を参照)。

注意

この記事の説明に従って AppInstance.GetActivatedEventArgs メソッドを使用することにより、特定の種類のアクティブ化情報を取得できるだけでなく、COM クラスを定義することにより、バックグラウンド タスクのアクティブ化情報を取得することもできます。 詳細については、「winmain COM バックグラウンド タスクの作成と登録」を参照してください。

コードの例

次のコードの例では、Windows フォーム アプリで、Main 関数から AppInstance.GetActivatedEventArgs メソッドを呼び出す方法を示しています。 アプリによってサポートされているアクティブ化の種類ごとに、args の戻り値を、対応するイベント引数の型にキャストします。 このコードの例では、Handlexxx メソッドは、別の場所で定義されている専用のアクティブ化ハンドラー コードと見なされます。

static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    var args = AppInstance.GetActivatedEventArgs();
    switch (args.Kind)
    {
        case ActivationKind.Launch:
            HandleLaunch(args as LaunchActivatedEventArgs);
            break;
        case ActivationKind.ToastNotification:
            HandleToastNotification(args as ToastNotificationActivatedEventArgs);
            break;
        case ActivationKind.VoiceCommand:
            HandleVoiceCommand(args as VoiceCommandActivatedEventArgs);
            break;
        case ActivationKind.File:
            HandleFile(args as FileActivatedEventArgs);
            break;
        case ActivationKind.Protocol:
            HandleProtocol(args as ProtocolActivatedEventArgs);
            break;
        case ActivationKind.StartupTask:
            HandleStartupTask(args as StartupTaskActivatedEventArgs);
            break;
        default:
            HandleLaunch(null);
            break;
    }

サポートされるアクティブ化の種類

AppInstance.GetActivatedEventArgs メソッドを使用すると、サポートされているイベント引数オブジェクトのセット (次の表を参照) からアクティブ化情報を取得できます。 これらのアクティブ化の種類の一部では、パッケージ マニフェストでパッケージ拡張機能を使用する必要があります。

ShareTargetActivatedEventArgs アクティブ化情報は、Windows 10 Version 2004 以降でのみサポートされています。 他のすべてのアクティブ化情報の種類は、Windows 10 Version 1809 以降でサポートされています。

イベント引数の型 パッケージ拡張機能 関連ドキュメント
ShareTargetActivatedEventArgs uap:ShareTarget デスクトップ アプリケーションを共有ターゲットにする
ProtocolActivatedEventArgs uap:Protocol プロトコルを使用してアプリケーションを起動する
ToastNotificationActivatedEventArgs desktop:ToastNotificationActivation デスクトップ アプリからのトースト通知
StartupTaskActivatedEventArgs desktop:StartupTask ユーザーが Windows にログオンしたときに実行可能ファイルを起動する
FileActivatedEventArgs uap:FileTypeAssociation パッケージ アプリケーションを一連のファイルの種類に関連付ける
VoiceCommandActivatedEventArgs なし アクティブ化を処理し音声コマンドを実行する
LaunchActivatedEventArgs None