豆腐の角のヘルメット

適当です・・・

Windows7のアイコンがおかしくなった

windows7のプログラムアイコンの一部が白い基本アイコンになってしまい参ってました。
特に起動には何ら支障はないのですが、気分的に良くない。
エクスプローラーの代替ソフトでもアプリケーションランチャーでも白いのが気に食わなかった。

いろいろ調べていくと幾つかの方法を見つけました。

1.画面解像度を変えてみる
【画面の解像度】-【詳細設定】→【モニター】-【色】を32ビットから16ビットに変えてOKする。
再度同じ設定画面を開き、16ビットから32ビットに戻す。
結果、ランチャー等を再起動しないとやっぱり駄目だし、PC再起動するとまた元に戻る・・・

2.IconCashe.dbを一旦削除して、ログオフ-再ログインする
C:\Users\【ログインユーザー名】\AppData\Local\IconCache.dbを削除
削除しても自動で再度作られるので大丈夫です。
結果、面倒くさい割には症状は変わらずです。

3.セーフモードでIconCache.dbを再作成する
セーフモードでログインした後に再度通常起動してみる。
結果!更に面倒くさかったのに何も変わらない・・・

4.IconCache.dbを自前で作る
IconCache.dbを削除した後にメモ帳で空のファイルを作って、名前をIconCache.dbにして更に読み取り専用属性をつける。
C:\Users\【ログインユーザー名】\AppData\Local\ に保存する。
これでIconCacheは上書きされないし、アイコンは直接読みに行くはず・・・

 

・・・・・・(´・ω・`)ガッカリ…

 

通常はここまでやればどれか引っかかって直るはずらしいです。
windowsデフォのエクスプローラーでは確かに直ってました。

しかしランチャーの方は直っても、再起動したりすると元の白アイコンに戻ったりで、
1.をいちいちやらなくてはないらないのが面倒でした。因みにエクスプローラーはデフォに戻しました。

もう直すことは諦めて対処法を楽に行えるように下記バッチファイルを作成しました。
設定画面の呼び出しは、
rundll32.exe [DLLファイル名], [関数名] [引数]
を使い、Shell32.dll,Control_RunDLL Desk.cplでいけるよう。
使ってるランチャーはMagicFormationなので、終了~タイミングを見計らっての再起動を自動化させました。

@echo on
REM ランチャ"MagicFormation"を終わらせる
taskkill /f /im MagicFormation.exe

@echo 詳細設定→TrueColor(32ビット)→16ビット[適用]→[はい]→[OK]
rundll32.exe Shell32.dll,Control_RunDLL Desk.cpl
pause

REM "MagicFormation"をここで起動さ、16ビットで読み込ませる
start E:\programFiles\mform_098\MagicFormation.exe

@echo 詳細設定→TrueColor(16ビット)→32ビット[適用]→[はい]→[OK]
rundll32.exe Shell32.dll,Control_RunDLL Desk.cpl
pause

これをメモ帳に書いて、.batで保存します。
腹立たしいけど多少は楽になったのでまあいいか。
32→16→32の変更まで自動で出来たらもっと楽なのにとも思いますが、そこまではいいかな?

 

Windows コマンドプロンプト ポケットリファレンス

Windows コマンドプロンプト ポケットリファレンス