【コラム】
こんにちは、阿久津です。今回は読者から頂いた質問を取り上げます。届いた電子メールによりますと、何らかの拍子に拡張子「.htm」「.html」のアイコンが未登録状態になるというものでした。確かにそのようなケースはまれにあり、ユーザーによっては驚かれることもあるでしょう。続けて電子メールを読んでいくと問題は、「Microsoft Office関連の更新プログラム導入時に発生する」とのことでした。
そもそもHTMLファイルは、HKEY_CLASSES_ROOT\.htmlキー(HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.htmlキーのエイリアス)に格納されている「既定」のデータ値に左右され、同データ値が「htmlfile」の場合は、HKEY_CLASSES_ROOT\htmlfileキーの情報を元に構成されています。アイコンファイルは、HKEY_CLASSES_ROOT\htmlfile\DefaultIconキーに並ぶ「既定」のデータ値「C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE,-17」で定義され、同ファイルに含まれるアイコンリソースを用いて、HTMLファイルのアイコンを表示するという仕組みです(図01~02)。
この状態でMozilla Firefoxを導入しますと、先の「既定」のデータ値は「FirefoxHTML」に書き換わり、参照先がHKEY_CLASSES_ROOT\FirefoxHTMLキーに変更されるため、HTMLファイルをダブルクリックした際の関連付けが正しく変更されるのです(図03~04)。
ファイルに対する関連付けを簡単に説明したところで、肝心の問題に取りかかりましょう。ポイントは「未登録状態」と「Microsoft Office用更新プログラム」の存在です。前者は単純にアイコンファイルを指す情報が破損しているか、アイコンキャッシュファイルに支障が発生しているかのいずれかでしょう。
アイコンキャッシュファイルの再構築は、デスクトップの配色数を変更するか、あらかじめフォルダーオプションダイアログで<隠しファイル、隠しフォルダー、および隠しドライブを表示する>を選択してから、「%LOCALAPPDATA%」フォルダーにある「IconCache.db」ファイルを削除し、Windows 7に再ログオンするだけです(図05~09)。
|
|
図08: [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「%LOCALAPPDATA%」と入力して<OK>ボタンをクリックします |
図09: 起動したエクスプローラーから「Iconcache.db」ファイルを見つけ、同ファイルを削除します。その後Windows 7に再ログオンしてください |
問題は後者のMicrosoft Officeです。筆者の記憶が確かなら、Office XP(2002)の時代から導入された「Microsoft Office HTML Icon Handler」というOfficeコンポーネントの一つが原因と考えて間違いないでしょう。同コンポーネントは、HKEY_CLASSES_ROOT\htmlfile\shellex\IconHandlerキーなどから参照され、アイコンの表示などを行なうというもの。
同コンポーネントはクラスID「42042206-2D85-11D3-8CFF-005004838597」で定義されていますが、一部のWebブラウザが同じクラスIDを用いてしまう場合、コンポーネントの更新時や削除時にアイコン情報が変更されると同時に、前述のアイコンキャッシュファイルの状態と整合性が取れなくなり、問題が発生する可能性があります(図10~12)。
|
|
図10: Officeセットアップ時には、HTMLファイルなどのエントリを格納するHKEY_CLASSES_ROOT\{ファイルタイプ名}\shellex\IconHandlerにエントリが書き込まれます |
|
図11: HKEY_CLASSES_ROOT\htmlfile\shellex\IconHandlerでは、Microsoft Office HTML Icon HandlerのクラスIDである「{42042206-2D85-11D3-8CFF-005004838597}」が登録されています |
|
図12: こちらはShellExViewというシェル拡張プログラムを制御するツールで、Microsoft Office HTML Icon Handlerを確認したものです。同コンポーネントが関連する拡張子が多数登録されているのを確認できました |
この問題を解決するには、HKEY_CLASSES_ROOT\{ファイルタイプ\ShellEx\IconHandlerキーに並ぶ「既定」のデータ値を削除し、前述したアイコンキャッシュファイルの削除を行なうことで解決できます。しかし、Microsoft Office HTML Icon Handler側の仕様的問題である以上、恒久的な解決策はなく、各Webブラウザやアプリケーション側で対策を講じるか、Officeの使用をあきらめるしかありません。
仕事でコンピューターを使う方にOfficeを使用しないという選択肢は難しいでしょう。そこで消極的解決法ですが、HTMLファイルのアイコンが未登録状態になるのを防ぐため、同コンポーネントを無効にするチューニングを紹介しましょう。
1.管理者権限でコマンドプロンプトを起動します。
2.プロンプトから「regsvr32 /u "C:\Program Files\Microsoft Office\Office14\msohevi.dll"」を実行します。
3.成功を示すダイアログが起動したら<OK>ボタンをクリックします。
4.コンピュータを再起動します。
これでチューニング終了です(図13~15)。
|
図14: コマンドプロンプトが起動したら、「regsvr32 /u "C:\Program Files\Microsoft Office\Office14\msohevi.dll"」と入力して[Enter]キーを押します。画面のように「~成功しました」というメッセージが表示されれば作業完了です |
この操作はMicrosoft Office HTML Icon Handlerの実ファイルである「msohevi.dll」をシステムから除外するためのものです。ステップ02の操作は「regsvr32 /u "C:\Program Files\Microsoft Office\Office14\msohevi.dll"」となっていますが、ファイルまでのフルパスは、お使いなられているMicrosoft Officeのバージョンに合わせて変更してください。なお、Microsoftが配布する修正プログラムでコンポーネントの登録を行なうロジックが介入する場合、このチューニングは意味を成さなくなります。あらかじめご了承ください。
ちなみに、初期状態に戻す場合は「regsvr32 "C:\Program Files\Microsoft Office\Office14\msohevi.dll"」と実行すれば済むように見えますが、筆者が確認した限りでは一部の情報が復元できませんでした。そのため、HKEY_CLASSES_ROOT\CLSID\{42042206-2D85-11D3-8CFF-005004838597}キーのバックアップを作成し、前述のコマンドの実行とあわせて復元を行なってください。
それでは、また次号でお会いしましょう。
阿久津良和(Cactus)
| 【レポート】マカフィーの世界の専門家の意識調査「サイバー防衛報告書」とセキュリティソリューション [21:15 5/25] |
| アップル、Aperture 3.2.4を公開 - バグ修正、安定性向上など [20:51 5/25] |
| 【レポート】GTC 2012 - VGXでエンタープライズ環境でのGPU需要開拓を狙うNVIDIA [20:07 5/25] |
| デル、期間限定キャンペーンに特価アイテム追加、アップグレード無料も継続 [19:41 5/25] |
| 上海問屋、iPhoneとほぼ同じ薄さのバッテリ内蔵ヘッドホンアンプ [19:05 5/25] |
|
「ゆりてつ」サイン会は作者と都電に揺られるツアー仕立て [17:45 5/27] ホビー |
|
【ネタバレもありの徹底解明コラム】『サザエさん』タマの意外な事実 [17:30 5/27] ホビー |
|
鍼灸(しんきゅう)師が教える。オフィスで口臭予防ツボ・ベスト3 [17:00 5/27] キャリア |
|
[梶浦由記]米「アニメ・エキスポ」に2度目の参加決定 [17:00 5/27] ホビー |
|
【連載】これだけは要チェック! TOEIC(R)単語帳 第107回 今回のお題は…「chemical」 [17:00 5/27] キャリア |