TATSUMARU-372466
この質問の回答が知りたい 2
質問
TATSUMARU-372466 質問日

.curファイルのアイコン表示がおかしい/直せない

Windows7 Pro x64 を使用しています。

C:\windows\cursols 内の.cur ファイルのアイコン表示が一部を除き変わってしまって直せません。

通常だとそのカーソルのデザイン自体が表示されるはずなんですが、全く関係の無いプログラムの実行ファイルのアイコン

であったり、鍵のアイコンであったり、メールのアイコンであったり全く統一性はありません。バラバラです。

インターネット上で対応策について検索を行ない、実行したことは次のとおりです。

1 cursolsフォルダの中を表示、「最新の情報に更新(R)」→直らない

2 cursolsフォルダ内のファイル表示を何度かいろいろ(特大アイコンから詳細まで)変えてみた→直らない

3 ユーザー名:administratorでログイン、当該フォルダを別ドライブにコピー、通常のユーザーアカウント(admin権限)でログインし貼りつけ

→カーソルファイルの上書き不可で徒労(adminアカウントのcursolsフォルダ内表示は正常(!)でしたが、通常のユーザーアカウントからその

コピペしたフォルダ内を見るとやはり一部表示がおかしくなっている。但しおかしくなった.curファイルも表示されているアイコンの種類も

C:\windows\cursols 内のものと比べると異なっている)

4 iconcache.dbを削除・再構築→直らない

5 一度セーフモードで立ち上げ、再度ユーザーアカウントでログイン→直らない

6 レジストリの.cur、curfile関連のキー等を全て削除・再起動→直らない(curfileキー内のDefaultIconキー内にある(既定)の値は%1でした…)

 (※この後バックアップを用いてレジストリをいじる直前の状態には戻しました。)

7 .curファイルの関連付けを確認→ポインター、不明なアプリケーション(この状態で正常のはずなので確認しただけで変更はしなかった)

8 画面の色を32bit→16→32に →直らない(但し、16にしたときは正常でした!期待したけど32に戻したらやっぱり直ってない…鬱)

そして、個別のカーソルの変更を行うときに出るウィンドウに表示されるカーソル一覧の各カーソルファイルのアイコン表示は、なんと正常なのです…???

OSは発売直後から運用しており、ソフトのインストールやら設定の変更やらもういろいろカスタマイズしてしまって、1つ1つ潰していくという検証は不可能な状況です。

ただ、救いは,フォルダ内のカーソルファイルの表示が変なだけで、そのフォルダ内でアイコンが変な表示になってしまっているカーソルを指定して

運用しても特に問題が生じない(画面上のカーソルは正常に表示され機能上も問題ない)ことです。

C:\windows\cursolsを表示させなければいい、気にしなければいい、と言われれば、確かにそれまでなのですが…

何か私が気づいていない「ここぞ!」ということがございましたら、ぜひお教え願います。

TATSUMARU-372466
この回答が役に立った 2
回答
TATSUMARU-372466 返信日

返信

中村 様

解決しました。

アイコン表示関係のトラブルについて、いくら検索してもiconcache.db関連しか目ぼしい情報がないため、Windowsにおけるアイコン表示がiconcache.dbに完全に

依存しているとしか考えようがなく、だとすればiconcache.dbがきちんとリフレッシュされていないのではないかと考え、「windows7 iconcache 更新されない」をキーワードに

検索を行ったところ、次のページがヒットしました。(googleのキャッシュでしか表示されないので、後日のために内容も貼ります、WindowsXPに対する記述ですが、7でも理屈は同じでしょう)。

http://webcache.googleusercontent.com/search?hl=ja&lr=&q=cache:kfkYyEpGPzsJ:http://lympoe.exblog.jp/+windows7+iconcache+%E6%9B%B4%E6%96%B0%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84&ct=clnk

以下引用:

アイコンの表示がおかしくなった時には 

概説:
アイコンの表示がおかしくなった時の対応方法が誤解されやすいので、整理しておきます。
前述のように、アイコンキャッシュはメモリ上にあります。起動時にExplorer.exeは、まずアイコンキャッシュ用データベースファイルであるIconCache.dbから必要なデータを読み込み、そこに無いものは元ファイルを参照します。読み込まれたアイコンデータはメモリ上にキャッシュされます。元ファイルが壊れていない前提で考えると、アイコン表示がおかしくなるのはIconCache.dbが壊れているからと推測され、それを削除しPCを再起動することでデータベースファイルが再構築されるとの解説をよく見かけます。
ところがIconCache.dbを削除しても、まだキャッシュメモリ上に壊れたアイコンデータが残っています。IconCache.dbが削除されて見つからない場合、ログオフ時にこれらはすべて差分として書き戻され、新たに壊れたデータの入ったIconCache.dbが作成されてしまいます。これでは再起動しても同じ事の繰り返しですので、以下の様にします。

操作:
1. IconCache.db( %USERPROFILE%\Local Settings\Application Data\IconCache.db 隠しファイル)を削除。壊れたデータベースファイルが消えました。

2. アイコンキャッシュを再構築するために、画面のプロパティから画面の色を一旦変更し、改めて元に戻します。例えば高(24ビット)から中(16ビット)を選んで適用後、再び高(24ビット)に戻してOKとします。この時IconCache.dbは無いので、データはすべて元のファイルから読み込まれます。これで再構築されたアイコンキャッシュからも壊れたデータが消えました。
因みに、IconCache.dbを削除せずExplorerで表示したままこの作業を行うと、ファイルが更新されないことが確認できます。すなわち、アイコンキャッシュの再構築というのはメモリ上の話なのです。

3. PCを再起動します。ログオフ時にアイコンキャッシュから新しいIconCache.dbが作成され、再起動後から参照されるようになります。この時、どういう訳かIconCache.dbが表示されないことがありますが、その場合は一度電源を切り、もう一度起動すると作成されるようです。

参考URL:
http://support.microsoft.com/kb/132668/ja

尚、このメモリ上にキャッシュされたデータは、ログオフのタイミングでアイコンキャッシュ用データベースファイル ( %USERPROFILE%\Local Settings\Application Data\IconCache.db 隠しファイルです) に差分があれば追加保存され、次回起動時から利用されます。すなわち、Explorer.exeがアイコンを描画するときは、
メモリ上のアイコンキャッシュ → IconCache.db → 元のファイル
の順にデータを探すわけです。起動時には当然メモリ上のキャッシュが空なので、まずIconCache.dbを参照します。

以上引用

つまり、いくらiconcache.dbを削除して再起動を行っても、「ログオフ時」にメモリ上のキャッシュからiconcache.dbが再構築されるため、いつまでたっても解決しないようなのです(ログオン時に再構築されるなら

メモリ上のキャッシュは消去されているため直接ファイルからアイコンを読みに行き、解決していたはず)。

また、歯面の色を16にすると直るが32に戻すと元に戻ってしまうのは、上記の「尚、このメモリ上に~」を読むと納得いきます(16に変える=メモリ上にもiconcache.dbにも16bitのアイコンがないためファイルに直接

読みに行き、表示が直り、データはメモリ上に格納。32に戻すとメモリ上に32bitのデータが残っていればそれを表示、なければiconcache.dbを読みに行ってしまいいずれにしてもアイコン化けは直らない)。

で、今回解決した手順ですが、まずiconcache.dbをshift+deleteで消去、続いて(再起動やログオフせず)画面の色を32→16→32に変更、その後再起動でiconcache.dbを再構築=アイコン化け治癒

でした。iconcache.dbの削除と同時にメモリ上のデータの消去もしくは再構築を行わないと真の意味でのiconcache.dbの再構築にならない、というところがポイントだったようです。

そうしますと、中村様ご指導の「ユーザー プロファイルの修復」でも当然同じ効果がありますから、アイコン化けは直るものと考えられます。

今回はお手間をとらせてしまいまして、大変申し訳ありませんでした。また困ったことがあったときには、ぜひご助力くださいませ。

大変ありがとうございました。

中村 和希
この回答が役に立った 0
中村 和希 返信日
Microsoft フォーラムモデレーター
TATSUMARU-372466 さん、こんにちは。
Microsoft Answers への投稿、ありがとうございます。

「cursols」フォルダー内のみの現象という事でしょうか。

すでに多くの確認をされているようですね。
私の方で他に考えられるのは、ユーザー プロファイルの修復を試してみるといったところでしょうか。

    破損したユーザー プロファイルを修復する http://windows.microsoft.com/ja-JP/windows7/Fix-a-corrupted-user-profile

何らかのアプリケーションなどが影響している可能性もあるかもしれませんが、特定するためにはやはり切り分け作業が必要かと思われます。
一つ一つ潰していく検証が不可能という事ですと、少し難しいかもしれませんね。。

画面の色を 16bit にした時だけ直ったという点も気になるところではあります。。

他の方からも何か良い情報が貰えると良いですね。

何かありましたら、お気軽に返信してください。
中村 和希 – Microsoft Support
中村 和希 - Microsoft Support
TATSUMARU-372466
この回答が役に立った 2
回答
TATSUMARU-372466 返信日

返信

中村 様

解決しました。

アイコン表示関係のトラブルについて、いくら検索してもiconcache.db関連しか目ぼしい情報がないため、Windowsにおけるアイコン表示がiconcache.dbに完全に

依存しているとしか考えようがなく、だとすればiconcache.dbがきちんとリフレッシュされていないのではないかと考え、「windows7 iconcache 更新されない」をキーワードに

検索を行ったところ、次のページがヒットしました。(googleのキャッシュでしか表示されないので、後日のために内容も貼ります、WindowsXPに対する記述ですが、7でも理屈は同じでしょう)。

http://webcache.googleusercontent.com/search?hl=ja&lr=&q=cache:kfkYyEpGPzsJ:http://lympoe.exblog.jp/+windows7+iconcache+%E6%9B%B4%E6%96%B0%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84&ct=clnk

以下引用:

アイコンの表示がおかしくなった時には 

概説:
アイコンの表示がおかしくなった時の対応方法が誤解されやすいので、整理しておきます。
前述のように、アイコンキャッシュはメモリ上にあります。起動時にExplorer.exeは、まずアイコンキャッシュ用データベースファイルであるIconCache.dbから必要なデータを読み込み、そこに無いものは元ファイルを参照します。読み込まれたアイコンデータはメモリ上にキャッシュされます。元ファイルが壊れていない前提で考えると、アイコン表示がおかしくなるのはIconCache.dbが壊れているからと推測され、それを削除しPCを再起動することでデータベースファイルが再構築されるとの解説をよく見かけます。
ところがIconCache.dbを削除しても、まだキャッシュメモリ上に壊れたアイコンデータが残っています。IconCache.dbが削除されて見つからない場合、ログオフ時にこれらはすべて差分として書き戻され、新たに壊れたデータの入ったIconCache.dbが作成されてしまいます。これでは再起動しても同じ事の繰り返しですので、以下の様にします。

操作:
1. IconCache.db( %USERPROFILE%\Local Settings\Application Data\IconCache.db 隠しファイル)を削除。壊れたデータベースファイルが消えました。

2. アイコンキャッシュを再構築するために、画面のプロパティから画面の色を一旦変更し、改めて元に戻します。例えば高(24ビット)から中(16ビット)を選んで適用後、再び高(24ビット)に戻してOKとします。この時IconCache.dbは無いので、データはすべて元のファイルから読み込まれます。これで再構築されたアイコンキャッシュからも壊れたデータが消えました。
因みに、IconCache.dbを削除せずExplorerで表示したままこの作業を行うと、ファイルが更新されないことが確認できます。すなわち、アイコンキャッシュの再構築というのはメモリ上の話なのです。

3. PCを再起動します。ログオフ時にアイコンキャッシュから新しいIconCache.dbが作成され、再起動後から参照されるようになります。この時、どういう訳かIconCache.dbが表示されないことがありますが、その場合は一度電源を切り、もう一度起動すると作成されるようです。

参考URL:
http://support.microsoft.com/kb/132668/ja

尚、このメモリ上にキャッシュされたデータは、ログオフのタイミングでアイコンキャッシュ用データベースファイル ( %USERPROFILE%\Local Settings\Application Data\IconCache.db 隠しファイルです) に差分があれば追加保存され、次回起動時から利用されます。すなわち、Explorer.exeがアイコンを描画するときは、
メモリ上のアイコンキャッシュ → IconCache.db → 元のファイル
の順にデータを探すわけです。起動時には当然メモリ上のキャッシュが空なので、まずIconCache.dbを参照します。

以上引用

つまり、いくらiconcache.dbを削除して再起動を行っても、「ログオフ時」にメモリ上のキャッシュからiconcache.dbが再構築されるため、いつまでたっても解決しないようなのです(ログオン時に再構築されるなら

メモリ上のキャッシュは消去されているため直接ファイルからアイコンを読みに行き、解決していたはず)。

また、歯面の色を16にすると直るが32に戻すと元に戻ってしまうのは、上記の「尚、このメモリ上に~」を読むと納得いきます(16に変える=メモリ上にもiconcache.dbにも16bitのアイコンがないためファイルに直接

読みに行き、表示が直り、データはメモリ上に格納。32に戻すとメモリ上に32bitのデータが残っていればそれを表示、なければiconcache.dbを読みに行ってしまいいずれにしてもアイコン化けは直らない)。

で、今回解決した手順ですが、まずiconcache.dbをshift+deleteで消去、続いて(再起動やログオフせず)画面の色を32→16→32に変更、その後再起動でiconcache.dbを再構築=アイコン化け治癒

でした。iconcache.dbの削除と同時にメモリ上のデータの消去もしくは再構築を行わないと真の意味でのiconcache.dbの再構築にならない、というところがポイントだったようです。

そうしますと、中村様ご指導の「ユーザー プロファイルの修復」でも当然同じ効果がありますから、アイコン化けは直るものと考えられます。

今回はお手間をとらせてしまいまして、大変申し訳ありませんでした。また困ったことがあったときには、ぜひご助力くださいませ。

大変ありがとうございました。

中村 和希
この回答が役に立った 0
中村 和希 返信日
Microsoft フォーラムモデレーター
TATSUMARU-372466 さん、こんにちは。

返信ありがとうございました。
とても有益な情報で、きっと他の方にも役に立つのではないでしょうか。
そして何よりも、症状が改善されたようで嬉しく思っています。

他の方にも参考になるように、今回は私の方で [回答としてマーク] を付けさせていただきました。
このマークはいつでも自由に解除することも出来ます。

今後とも Answers をお気軽にご利用くださいね。
中村 和希 – Microsoft Support
中村 和希 - Microsoft Support
TATSUMARU-372466
この回答が役に立った 0
TATSUMARU-372466 返信日

返信

ご丁寧に恐れ入ります。

自分で自分の回答に「回答としてマーク」するのは何だか気が引けまして。

お気遣いありがとうございます。

また困ったことが生じましたら利用させていただきます。

ありがとうございました。