短期集中連載

10年を超える定番クリーナー「CCleaner」を10倍使いこなす 第6回

孤立したレジストリエントリをクリーニング その1

「CCleaner」

 本連載では、定番クリーニングソフト「CCleaner」の機能を紐解き、各項目が実行しているクリーニングの対象を詳細に解説していく。今回からは、レジストリのクリーニングを行う“レジストリ”セクションの項目を個別に解説していこう。

“クリーナー”セクションの[アプリケーション]タブ

 “レジストリ”セクションの前に1つ触れておかなければならないのが、“クリーナー”セクションの[アプリケーション]タブである。こちらは、「Firefox」や「Google Chrome」といったメジャーアプリケーションや、Windowsの標準アプリケーションが生成する不要ファイルや履歴などがクリーニングの対象となる。項目名をご覧になるとわかるように、「Firefox」と「Google Chrome」のクリーニング内容はほぼ同一だ。

 OSにインストール済みのアプリケーションを検出し、使用履歴や不要な一時ファイルを削除するのが主な機能。バージョンを重ねるごとに対応アプリケーションも増え、執筆時点で最新版となるv4.15では、「Google Chrome」の64bit版や「Nitro PDF Reader」をサポートした。

 さらにサポートアプリケーションを増やすサードパーティ製のツール「CCEnhancer」をインストールすると、「Firefox」のアップデートログやアドオンが生成する一時ファイルなどをクリーニングターゲットに加えることも可能だ。本連載では詳細は割愛するが、より多くの不要ファイルや不要な情報をクリーニングしたいユーザーは試してほしい。

[アプリケーション]タブでは、メジャーなアプリケーションやWindows ストアアプリなど、各アプリケーションが生成する不要なファイルや情報を削除できる
クリーニングターゲットを大幅に増やす「CCEnhancer」。不要になった場合は「CCleaner」のインストールフォルダにある“winapp2.ini”を削除すればよい

“レジストリ”セクション

 さて、いよいよ“レジストリ”セクションについて解説しよう。こちらは存在しないアプリケーションに関連付けられたレジストリエントリ(以下、エントリ)や、存在しないファイルを参照しているエントリを検出し、クリーニングのターゲットとする項目が並んでいる。全般的に見れば有用な機能だが、エントリを削除するため細心の注意が必要だ。

 筆者が経験した例では、某デバイスのソフトウェアが参照するエントリがクリーニングターゲットに含まれ、コンピューターを再起動すると同デバイスが正常に動作しなくなるというトラブルに見舞われたことがある(現在は改善済み)。

 そのため“レジストリ”セクションのクリーニングは、実行時にエントリをファイルにバックアップする機能が用意されているので、必ず作成してほしい。バックアップファイルは、「レジストリ エディター」などから作成するレジストリファイルと同じため、ダブルクリックなどで削除したエントリを復元できる。

[問題点をスキャン]→[問題点を解決]と順番にボタンをクリックすると、バックアップを促すダイアログが現れる。予期せぬトラブルを防ぐために、バックアップは必要だ
バックアップファイルの中身は通常のレジストリファイルのため、ダブルクリックで削除エントリを復元できる
エントリのクリーニングは1つずつ確認を求められるが、[選択したすべてを解決]ボタンでまとめてクリーニングを実行できる

 なお、バックアップ作成の有無を選択した後、クリーニング対象となるエントリを削除するか否か、1つずつ判断を求められるのが少々面倒だ。そもそもクリーニングするか否かはスキャン実行後にチェックボックスで取捨選択すればよい。その上で、[選択したすべてを解決]ボタンによる一括クリーニングをお勧めしたい。

見付けられない共有DLL

 それでは各項目の解説に取りかかろう。最初の“見付けられない共有DLL”は、アプリケーション実行時に共有ライブラリを格納したダイナミックリンクライブラリ(DLL)の参照エントリを検出する。

 具体的には“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs”キーで指定した各DWORD値を参照し、DLLファイルが存在するか判断しているようだ。64bit版Windowsの場合は、“HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\SharedDlls”キーも対象に含まれる。

 Windows 8.1で精査したところ、OS新規インストール直後の状態で.NET Framework 1.0に関するエントリが検出される。現在の主流のバージョンは3.5および4.5のため、削除しても大きな問題にはならない。ただし、どうしても気になるという場合は除外リストへ登録すると次回スキャン時は検出されなくなるので、下図の操作をお勧めする。

除外リストに加える項目を選択してから右クリックし、メニューから[除外リストに追加]を選択する
除外リストは“オプション”のセクションの“リストから除外”で操作可能。リストから取り除く場合は、エントリを選択して[選択項目の削除]ボタンをクリックする

関連づけられていない拡張子

この例では、拡張子“.BAK001”はOpenWithListキーにエントリが存在するため削除対象にならないが、拡張子“BAK”はOpenWithListキーの中身が空のため削除対象となる

 “関連づけられていない拡張子”は、アンインストール済みアプリケーションが使っていた拡張子や、エクスプローラで操作した拡張子のエントリのクリーニングが主な目的。こちらは“HKEY_CLASSES_ROOT”キーや“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts”キーに並ぶ拡張子やファイルタイプのエントリをスキャンし、アプリケーションの“ProgID”が存在しないエントリや、サブキー“OpenWithList”が空のエントリが削除対象となる。開発中のアプリケーションで使用する拡張子など特定の事情がない限り、すべて削除して構わない。

次回予告

 レジストリのクリーニングターゲットは多岐に渡るため、今回から数回にかけて解説する。興味をもたれた方はぜひご覧いただきたい。

(Cactus:阿久津 良和)