こんにちは、阿久津です。Windows 8から加わったスタートメニューのタイルですが、基本的な実装はWindows 10でも大差ありません。例えば、グループポリシーエディターには「ログオン時にタイル通知を消去する」という設定が用意されています(図01)。
このポリシーを有効にすると、HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Explorerもしくは、HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\ExplorerキーにDWORD値「ClearTilesOnExit」を作成し、データは「1」がセットされます。この値名から察するに、サインアウト時に処理を行っているのでしょう。
ライブタイルは開発者が指定したWebサイトからIBackgroundTaskを用いて、XMLファイルや画像ファイルなどを自動取得し、メッセージや画像を表示させているため、データはローカルストレージに一度蓄積されます。しかし、先のレジストリエントリーでは削除までは行いません。そこで今回はライブタイルのキャッシュを手動で消去するチューニングを紹介しましょう。
1. 管理者権限でレジストリエディターを起動します。
2. レジストリエディターが起動したら、HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ImmersiveShell\StateStoreキーを開きます。
3. DWORD値「ResetCache」のデータを「1」に変更します。
4. DWORD値「ResetCacheCount」のデータを「0」に変更します。
5. レジストリエディターを終了します。
6. Windows 10へ再サインインします。
これで操作が完了しました(図02~07)。
図03 レジストリエディターが起動したら、HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\ CurrentVersion\ImmersiveShell\StateStoreキーを開きます |
それでは結果を確認しましょう。数秒ほどでコンテンツを取得し終えてしまうため、直ちにスタートメニューを開いてください。ライブタイルが次々と更新される様が確認できます。(図08)。
一見しただけでは、ライブタイルのキャッシュが消えたように思えませんが、本チューニングのユニークな点は値の動きです。再サインイン(Explorer.exeの再起動)後はDWORD値「ResetCache」のデータは「0」に変更され、DWORD値「ResetCacheCount」は再サインイン後にデータが増加(インクリメント)する仕組みです。例えばデータが「1」の場合は「2」に増加することを確認しました(図09)。
ただし、必ずしもDWORD値「ResetCacheCount」のデータがインクリメントされるわけではありません。詳細は不明ながらも取得済みキャッシュデータとネット上から取得したデータを比較し、キャッシュデータのクリアが必要だと判断して実行した場合のみインクリメントするようです。ネットワークトラフィック量を意識する必要がない場合、冒頭で述べたレジストリエントリーと組み合わせて、描画内容とキャッシュデータをクリアした方が快適になるでしょう。
なお、本チューニングは手動でキャッシュクリア操作を実行しています。そのため、破棄するといった操作を行う必要はありません。
それでは、また次号でお目にかかりましょう。
阿久津良和(Cactus)