知識マップ: Windowsアプリのタスクトレイ常駐とトースト通知 ── NotifyIconの落とし穴とAppNotificationの選び方
記事「Windowsアプリのタスクトレイ常駐とトースト通知 ── NotifyIconの落とし穴とAppNotificationの選び方」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
業務Windowsアプリのタスクトレイ常駐は今もNotifyIconが基本で、WPFには同等のコントロールがないためWinFormsを併用するのが最小構成です。Explorer再起動時のアイコン消失はTaskbarCreatedの再登録で吸収され、通知はCommunity Toolkit通知やWinRTのToastNotificationManagerが世代交代した末に、非パッケージアプリでも公式推奨となったWindows App SDKのAppNotificationへ集約されています。ただし非パッケージアプリはランタイムの配布が必須で、管理者昇格プロセスや応答不可(Focus Assist)では通知が届かないことがあり、Windowsサービスはセッション0で動くためトースト自体を出せず、ユーザーセッション側のトレイ常駐エージェントとIPCで連携する構成が定石になります。
flowchart LR
accTitle: タスクトレイ常駐とトースト通知の知識マップ
accDescr: NotifyIconによるトレイ常駐とTaskbarCreatedでの再登録、WinRT・Community Toolkit・Windows App SDKというトースト通知APIの世代交代、非パッケージアプリのランタイム配布要件、応答不可や昇格プロセスによる通知の非到達、セッション0のWindowsサービスがトレイ常駐エージェントとIPC連携する構成の関係を示す図
notifyicon["NotifyIconクラス"]
app_notification["AppNotification(Windows App SDK)"]
wpf["WPF"]
windows_forms["Windows Forms"]
taskbarcreated["TaskbarCreatedメッセージ"]
winrt_toast["WinRTのToastNotificationManager"]
community_toolkit_notifications["Community Toolkit Notifications"]
aumid["AUMID(AppUserModelID)"]
unpackaged_app["unpackaged app"]
windows_app_sdk_runtime["Windows App SDKランタイム(配布)"]
com["COM(コンポーネントオブジェクトモデル)"]
admin_rights["管理者権限"]
session_zero["セッション0"]
windows_service["Windowsサービス"]
tray_agent_ipc_pattern["トレイ常駐エージェント+IPCによる通知構成"]
show_balloontip["NotifyIcon.ShowBalloonTip"]
focus_assist["応答不可(Focus Assist)"]
notification_non_delivery["通知が届かない・気づかれないケース"]
wpf -.->|"前提とする"| windows_forms
notifyicon -->|"利用する"| taskbarcreated
app_notification -->|"の後継"| winrt_toast
app_notification -->|"の後継"| community_toolkit_notifications
winrt_toast -->|"前提とする"| aumid
app_notification -->|"推奨される対応"| unpackaged_app
unpackaged_app -.->|"前提とする"| windows_app_sdk_runtime
app_notification -->|"前提とする"| com
app_notification -->|"両立しない"| admin_rights
session_zero -->|"両立しない"| app_notification
windows_service -->|"両立しない"| app_notification
windows_service -.->|"前提とする"| tray_agent_ipc_pattern
tray_agent_ipc_pattern -->|"利用する"| notifyicon
show_balloontip -->|"前提とする"| notifyicon
focus_assist -->|"原因になり得る"| notification_non_delivery
admin_rights -->|"原因になり得る"| notification_non_delivery
app_notification -->|"利用する"| aumid
app_notification -->|"で構成できる"| windows_app_sdk_runtime
概念間の関係(全18件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- WPFはWindows Formsを前提とします。
- NotifyIconクラスはTaskbarCreatedメッセージを利用します。
- AppNotification(Windows App SDK)はWinRTのToastNotificationManagerの後継に当たります。
- AppNotification(Windows App SDK)はCommunity Toolkit Notificationsの後継に当たります。
- WinRTのToastNotificationManagerはAUMID(AppUserModelID)を前提とします。
- AppNotification(Windows App SDK)はunpackaged appに対する本記事の推奨です。
- unpackaged appはWindows App SDKランタイム(配布)を前提とします。
- AppNotification(Windows App SDK)はCOM(コンポーネントオブジェクトモデル)を前提とします。
- AppNotification(Windows App SDK)は管理者権限と両立しません。
- セッション0はAppNotification(Windows App SDK)と両立しません。
- WindowsサービスはAppNotification(Windows App SDK)と両立しません。
- Windowsサービスはトレイ常駐エージェント+IPCによる通知構成を前提とします。
- トレイ常駐エージェント+IPCによる通知構成はNotifyIconクラスを利用します。
- NotifyIcon.ShowBalloonTipはNotifyIconクラスを前提とします。
- 応答不可(Focus Assist)は通知が届かない・気づかれないケースの原因になることがあります。
- 管理者権限は通知が届かない・気づかれないケースの原因になることがあります。
- AppNotification(Windows App SDK)はAUMID(AppUserModelID)を利用します。
- AppNotification(Windows App SDK)はWindows App SDKランタイム(配布)で構成できます。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。