こんにちは、阿久津です。お盆ということで読者のなかでも、まとまった時間を取れる方が多いのではないでしょうか。ファイルの整理や不要なデータの削除といったメンテナンスは、Windows 7の時代でも必要な作業です。本連載でもこれまで様々なクリーニングテクニックを紹介してきましたが、Windows 7の時代になって見落としていたのが通知アイコンの履歴情報。

コントロールパネルなどから「通知領域アイコン」を起動しますと、通知領域に表示させたアイコンに対する設定が可能です。ここでポイントとなるのが、現在使用中のアプリケーション(アイコン)だけでなく、過去のアプリケーションに対する動作設定が残されている点(図01~02)。

図01: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「Rundll32.exe shell32.dll,Options_RunDLL 5」と入力して<OK>ボタンをクリックします

図02: これで「通知領域アイコン」が起動し、現在および過去に表示されたアイコンと動作設定が列挙されます

これは、次回同じアプリケーションを起動した際に、過去に施した設定を再び行わなくて済むための機能ですが、なかには試しに実行したアプリケーションの設定情報も残っているため、邪魔な存在となるのではないでしょうか。残念ながら「通知領域アイコン」から不要な情報だけを削除する機能は用意されていません。そこで今回は、すべての情報を削除するチューニングをお届けします。

1.管理者権限でレジストリエディターを起動します。
2.HKEY_CURRENT_USER \ Software \ Classes \ Local Settings \ Software \ Microsoft \ Windows \ CurrentVersion \ TrayNotifyキーを開きます。
3.バイナリ値「IconStreams」を削除します。
4.バイナリ値「PastIconsStream」を削除します。
5.文字列値「PromotedIconCache」を削除します。
6.レジストリエディターを終了し、Windows 7に再ログオンします。

これでチューニングが終了しました(図03~12)。

図03: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regedit」と入力して<OK>ボタンをクリックします

図04: レジストリエディターが起動したら、HKEY_CURRENT_USER \ Software \ Classes \ Local Settings \ Software \ Microsoft \ Windows \ CurrentVersion \ TrayNotifyまでキーをたどって開きます

図05: 右ペインにあるバイナリ値「IconStreams」を右クリックし、メニューにある<削除>をクリックします

図06: 確認をうながすダイアログが現れたら<はい>ボタンをクリックします

図07: 続いてバイナリ値「PastIconsStream」を右クリックし、メニューにある<削除>をクリックします

図08: 確認をうながすダイアログが現れたら<はい>ボタンをクリックします

図09: 今度は文字列値「PromotedIconCache」を右クリックし、メニューにある<削除>をクリックします

図10: 確認をうながすダイアログが現れたら<はい>ボタンをクリックします

図11: 操作を終えたら<×>ボタンをクリックしてレジストリエディターを終了させます

図12: <スタート>メニューの電源ボタンから<ログオフ>を選択して、Windows 7に再ログオンします

早速結果を確認してみましょう。先の手順を参考に「通知領域アイコン」を起動しますと、現在起動中のアプリケーション(アイコン)のみ列挙されていることが確認できます。不要な通知領域アイコンが溜まってきたら、本チューニングをお試しください(図13)。

図13: 過去の不要なアイコンが削除され、現在起動中のアプリケーションのアイコンのみ列挙されています

しかし、これでは簡単過ぎますので、上記操作をワンクリックで実行するバッチファイルを考えてみました。レジストリエントリの削除は「reg.exe」コマンドを使えば簡単ですが、ポイントは再ログオンに対する操作。そもそも、本チューニングにおける再ログオンは、エクスプローラーの実体である「Explorer.exe」の再起動を目的としています。

そこで、思いつくつくのが起動中のプロセスを終了させる「taskkil.exe」。同コマンドのフィルター機能を使い、起動中のエクスプローラーをすべて終了させた後に、エクスプローラーを起動すれば、チューニング操作が適用されます。そこで下記のようなバッチファイルを用意しました。

@echo off
setlocal
set KEY=HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify

reg delete "%KEY%" /f /v IconStreams
reg delete "%KEY%" /f /v PastIconsStream
reg delete "%KEY%" /f /v PromotedIconCache
taskkill /F /IM explorer.exe
start explorer.exe

endlocal

本バッチファイルを管理者権限で実行しますと、対象となるレジストリエントリの削除からエクスプローラーの削除および起動が順番に実行されます。なお、文字列値「PromotedIconCache」は即時生成されますが、バイナリ値「IconStreams」および「PastIconsStream」は通知アイコンに対する設定を行っていくと生成されます。そのため、クリーニング後にバッチファイルを実行しますと、エラーが表示されますが特に問題はありません。

それでは、また次号でお会いしましょう。

阿久津良和(Cactus)