デスクトップ アプリからのトースト通知のアクティブ化
デスクトップ アプリ (パッケージ化された MSIX アプリ、スパース パッケージを使用してパッケージ ID を取得するアプリ、従来のパッケージ化されていないデスクトップ アプリを含む) は、Windows アプリと同様に対話型トースト通知を送信できます。 ただし、異なるアクティブ化スキームのために、いくつかの異なるデスクトップ アプリのオプションがあります。
この記事では、Windows 10 でトースト通知の送信に使用するためのオプションを一覧表示します。 すべてのオプションでは、以下が完全にサポートされています。
- アクション センター内での保持
- ポップアップとアクション センター内の両方からアクティブ化可能
- EXE が実行されていないときにアクティブ化可能
すべてのオプション
次の表は、デスクトップ アプリ内のトーストをサポートするためのオプション、および対応するサポートされる機能を示しています。 この表を使用してシナリオに最適なオプションを選択します。
| オプション | 視覚化 | アクション | 入力 | プロセス内でのアクティブ化 |
|---|---|---|---|---|
| COM アクティベーター | ✔️ | ✔️ | ✔️ | ✔️ |
| COM なし / Stub CLSID | ✔️ | ✔️ | ❌ | ❌ |
推奨されるオプション - COM アクティベーター
これは、デスクトップ アプリで使用できる推奨オプションであり、すべての通知機能をサポートしています。 "COM アクティベーター" について心配することはありません。以前に COM サーバーを記述したことがない場合でも、これを非常に簡単にするライブラリ C# および C++ アプリがあります。
| 視覚化 | アクション | 入力 | プロセス内でのアクティブ化 |
|---|---|---|---|
| ✔️ | ✔️ | ✔️ | ✔️ |
COM アクティベーター オプションでは、アプリで次の通知テンプレートとライセンス認証の種類を使用できます。
| テンプレートとライセンス認証の種類 | MSIX/スパース パッケージ | 従来のデスクトップ |
|---|---|---|
| ToastGeneric フォアグラウンド | ✔️ | ✔️ |
| ToastGeneric バックグラウンド | ✔️ | ✔️ |
| ToastGeneric プロトコル | ✔️ | ✔️ |
| レガシ テンプレート | ✔️ | ❌ |
注意
COM アクティベーターを既存の MSIX/スパース パッケージ アプリに追加すると、フォアグラウンド/バックグラウンドおよび従来の通知のアクティブ化により、コマンド ラインではなく COM アクティベーターがアクティブ化されます。
このオプションを使用する方法については、「デスクトップ C# アプリからのローカル トースト通知の送信」または「Win32 C++ WRL アプリからのローカル トースト通知の送信」を参照してください。
代替オプション - COM なし / Stub CLSID
これは、COM アクティベーターを実装できない場合の代替オプションです。 ただし、入力サポート (トーストでのテキスト ボックス) やプロセス内でのアクティブ化など、いくつかの機能が犠牲になります。
| 視覚化 | アクション | 入力 | プロセス内でのアクティブ化 |
|---|---|---|---|
| ✔️ | ✔️ | ❌ | ❌ |
このオプションでは、従来のデスクトップをサポートする場合、次に示すように、使用できる通知テンプレートとライセンス認証の種類がはるかに制限されます。
| テンプレートとライセンス認証の種類 | MSIX/スパース パッケージ | 従来のデスクトップ |
|---|---|---|
| ToastGeneric フォアグラウンド | ✔️ | ❌ |
| ToastGeneric バックグラウンド | ✔️ | ❌ |
| ToastGeneric プロトコル | ✔️ | ✔️ |
| レガシ テンプレート | ✔️ | ❌ |
パッケージ化された MSIX アプリとスパース パッケージを使用するアプリの場合は、UWP アプリのようにトースト通知を送信するだけです。 ユーザーがトーストをクリックすると、アプリは、トーストで指定した起動引数でコマンド ラインから起動されます。
従来のデスクトップ アプリでは、トーストを送信してショートカットで CLSID を指定できるように、AUMID を設定します。 ランダムな GUID を指定できます。 COM サーバー/アクティベーターを追加しないでください。 "stub" COM CLSID を追加することで、アクション センターで通知が保持されます。 スタブ CLSID は他のトーストのアクティブ化を中断するため、プロトコルのアクティブ化のトーストのみを使用できる点に注意してください。 そのため、プロトコルのアクティブ化をサポートするようにアプリを更新し、トースト プロトコルで各自のアプリをアクティブ化する必要があります。