パッケージ化された Win32 アプリとパッケージ化されていない Win32 アプリは、UWP アプリと同様に対話型トースト通知を送信できます。 これには、パッケージ化されたアプリが含まれます (パッケージ化された 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 は他のトーストのアクティベーションを妨げるため、プロトコルアクティベーションのトーストのみを使用できることに注意してください。 そのため、プロトコルのアクティブ化をサポートするようにアプリを更新し、トーストのプロトコルで独自のアプリをアクティブ化する必要があります。
リソース
Windows developer