Windows 10 におけるトースト通知の文字数制限について
こんにちは、Platform SDK (Windows SDK) サポートチームです。
今回は、Windows 10 における、トースト通知に関する現象についてお知らせします。
まずは、以下のブログでもご案内しておりますが、Windows 10 におけるバルーン チップとトースト通知に関する仕様変更について、お伝えします。
Windows 10 におけるバルーン チップのイベント通知仕様について
<https://blogs.msdn.com/b/japan_platform_sdkwindows_sdk_support_team_blog/archive/2016/02/03/windows-101.aspx>
前提
タスクトレイにアイコンを表示して常駐するアプリケーションから、ユーザーへ通知を行う手段の一つとして、バルーン チップがあります。
Windows 10 では、バルーン通知をトースト通知に変換する機能が既定となっています。
このため、Windows 8.1 以前にバルーン チップを表示させていたアプリケーションを、Windows 10 にて使用した場合、バルーン チップではなくトースト通知として表示されます。
Windows 10 Pro、Windows 10 Enterprise、Windows 10 Education では、以下のとおりグループ ポリシーを変更することにより、トースト通知ではなく、バルーンチップとして表示することが可能となります。
- [スタート] ボタンを押下し、[すべてのアプリ] をクリックする。
- [Windows システム ツール] 内、[ファイル名を指定して実行] をクリックする。
- gpedit.msc を実行する。
- [ローカル グループ ポリシー エディター] 内、[ユーザーの構成] - [管理用テンプレート] - [タスク バーと [スタート] メニュー] を開く。
- 右側のウィンドウから、[トースト通知を無効にしてバルーン通知を使用する。] をダブル クリックする。
- [有効] のラジオ ボタンをチェックし、[OK] をクリックする。
- システムを再起動する。
同じアプリケーションを使用した場合、設定前後で以下のように表示が異なります。
概要
上記設定により、Windows 10 の既定では、Shell_NotifyIcon 関数にてバルーン チップを表示した場合も、トースト通知に変換されます。
この際、バルーン チップを表示した場合と、トースト通知を表示した場合とで、表示可能な文字数が異なります。
現象
Shell_NotifyIcon 関数を用いてバルーン チップを表示する場合、NOTIFYICONDATA 構造体の、szInfo に対して、文字列を指定することにより、バルーン チップ上に文字列を表示可能となります。文字列の最大サイズは、255 バイトとなりますので、半角文字では 255 文字を表示することができます。
しかしながら、Windows 10 のトースト通知では、この文字列の最大サイズが、144 バイトに制限されています。
このため、文字数が多いバルーン チップを表示する場合、同じアプリケーションを使用しても、設定前後で以下のように表示が異なります。
原因
本現象は、Windows 10 における制限です。
ご不便をおかけし恐れ入りますが、本動作を変更する OS の設定や、アプリケーションの実装はありません。
アプリケーション側で、表示する文字数を制限文字数内に収まるよう実装ください。
参考情報
ご参考までに、今回ご案内した各関数のドキュメントを以下にご紹介します。
Shell_NotifyIcon function
<https://msdn.microsoft.com/ja-jp/library/windows/desktop/bb762159(v=vs.85).aspx>
NOTIFYICONDATA structure
<https://msdn.microsoft.com/ja-jp/library/windows/desktop/bb773352.aspx>