次の方法で共有


デスクトップ アプリからのトースト通知をアクティブ化する

パッケージ化された Win32 アプリとパッケージ化されていない Win32 アプリは、UWP アプリと同様に対話型トースト通知を送信できます。 これには、パッケージ化されたアプリが含まれます (パッケージ化された WinUI 3 デスクトップ アプリの新しいプロジェクトの作成参照)。外部の場所を持つパッケージ化されたアプリ (外部の場所パッケージ化によるパッケージ ID の付与に関するページを参照してください)。およびパッケージ化されていないアプリ (パッケージ化されていない WinUI 3 デスクトップ アプリの新しいプロジェクトの作成を参照してください)。

ただし、パッケージ化されていない Win32 アプリには、いくつかの特別な手順があります。 これは、さまざまなアクティブ化スキームと、実行時にパッケージ ID が不足しているためです。

このトピックでは、Windows 10 でトースト通知を送信するためのオプションを示します。 すべてのオプションが完全にサポートされています...

  • アクション センターでの永続化
  • ポップアップとアクション センター内の両方からアクティブ化可能
  • EXE が実行されていない間にアクティブ化可能であること

すべてのオプション

次の表は、デスクトップ アプリ内でトーストをサポートするためのオプションと、対応するサポートされている機能を示しています。 この表を使用して、シナリオに最適なオプションを選択できます。

選択肢 ビジュアル アクション 入力 プロセス内でアクティブ化する
COM アクティベーター サポートされています サポートされています サポートされています サポートされています
COM/スタブ CLSID なし サポートされています サポートされています サポートされていません サポートされていません

優先オプション - COM アクティベーター

これは、デスクトップ アプリで動作し、すべての通知機能をサポートする推奨オプションです。 "COM アクティベーター" を恐れないでください。これまでに COM サーバーを記述したことがない場合でも、これを非常に簡単にする C# および C++ アプリ 用のライブラリがあります。

ビジュアル アクション 入力 プロセス内でアクティブ化する
サポートされています サポートされています サポートされています サポートされています

COM アクティベーター オプションを使用すると、アプリで次の通知テンプレートとアクティブ化の種類を使用できます。

テンプレートとアクティブ化の種類 梱包済み 未梱包
ToastGeneric Foreground サポートされています サポートされています
ToastGeneric の背景 サポートされています サポートされています
ToastGeneric プロトコル サポートされています サポートされています
レガシ テンプレート サポートされています サポートされていません

既存のパッケージ アプリに COM アクティベーターを追加すると、コマンド ラインではなく、フォアグラウンド/バックグラウンドおよびレガシ通知のアクティブ化によって COM アクティベーターがアクティブ化されます。

このオプションを使用する方法については、「 デスクトップ C# アプリからローカル トースト通知を送信 する」または 「Win32 C++ WRL アプリからローカル トースト通知を送信する」を参照してください。

代替オプション - COM/スタブ CLSID なし

これは、COM アクティベーターを実装できない場合の代替オプションです。 ただし、入力サポート(トーストのテキストボックス)やインプロセスの有効化など、いくつかの機能を犠牲にすることになります。

ビジュアル アクション 入力 プロセス内でアクティブ化する
サポートされています サポートされています サポートされていません サポートされていません

このオプションでは、デスクトップをサポートしている場合、以下に示すように、使用できる通知テンプレートとアクティブ化の種類がはるかに制限されます。

テンプレートとアクティブ化の種類 梱包済み 未梱包
ToastGeneric Foreground サポートされています サポートされていません
ToastGeneric の背景 サポートされています サポートされていません
ToastGeneric プロトコル サポートされています サポートされています
レガシ テンプレート サポートされています サポートされていません

パッケージ アプリの場合は、UWP アプリのようにトースト通知を送信するだけです。 ユーザーがトーストをクリックすると、トーストで指定した起動引数を使用して、アプリがコマンド ラインで起動されます。

パッケージ化されていないアプリの場合は、トーストを送信できるように AUMID を設定し、ショートカットに CLSID も指定します。 任意のランダムな GUID を指定できます。 COM サーバー/アクティベーターを追加しないでください。 "「スタブ」の COM CLSID を追加すると、アクション センターに通知を保持させることになります。" スタブ CLSID は他のトーストのアクティベーションを妨げるため、プロトコルアクティベーションのトーストのみを使用できることに注意してください。 そのため、プロトコルのアクティブ化をサポートするようにアプリを更新し、トーストのプロトコルで独自のアプリをアクティブ化する必要があります。

リソース