アイコン表示の負担を減らして動作を軽く!

for Windows 95/98/Me/NT/2000/XP


過度なアイコン表示の負担を減らして、動作を軽快に!
アイコン表示の負担を減らそう!


はじめに

 様々なアイコン表示は画面を見やすくさせますが、一方で、そのような表示を行うための処理の負担は必ずしも軽いとはいえない場合があります。特に9x系のWindows OSを使う場合や、古い機種でマシンパワーが限られている場合には、むしろできるだけ不要な処理を省いて、動作を軽くする設定が好まれることが多いでしょう。このようなWindowsの軽量化に関する情報は、Webで多く見つけることができ、私もそのうちの多くを利用させていただいていますが、今回、自分なりに発見した工夫を紹介させていただくことにしました。

※注意 下記の内容の実行は、理解できる方が各自の責任において行ってください。初心者の方は実行しない方が賢明です。万一不具合が生じた場合でも、私は責任をとることができません。

もくじ

1. 基本編
 1-1. アイコンは16色表示に抑える
 1-2. ショートカットアイコンに矢印をつけない
 1-3. 固有のアイコンを表示しない
2. 自分なりの工夫編
 2-1. アイコンをshell32.dllから選ぶ (2004/07/10)
 2-2. Iconhandlerを切る (2005/10/30)
 2-3. shell32.dllを減量する (2005/12/04)
3. 自作プログラム
 3-1. Shl32ico - Shell32 Icon Reset Utility (2005/11/05〜) - Updated (2007/02/19)


1.基本編

ここでは、アイコン表示の負担を減らすための、比較的よく知られたテクニックを紹介します。やり方がわからない場合、webで検索すればもっと親切なページがみつかることでしょう。

1-1. アイコンは16色表示に抑える

 256色やHigh Color、True Colorを使うアイコンはもちろんその分だけきれいですが、ほとんどの場合は16色のアイコンで十分でしょう。そのため、
窓の手などのユーティリティを使って、16色のアイコンを使うように設定しておきましょう。

1-2. ショートカットアイコンに矢印をつけない

 通常、ショートカットアイコンには左下に矢印がつきますが、いちいちこのような表示を必要としない場合もあるでしょう。設定で矢印を表示しないようにするやり方にはいろいろありますが、私のお勧めはレジストリを「isshortcut」で検索して見つかったものを、それぞれ削除するか別の名前(例えば「;isshortcut」)に変えてしまうことです。ショートカットにはいろいろ種類がありますので、このやり方で検索するのが一番確実と思います。

1-3. 固有のアイコンを表示しない

表示は少し地味になりますが、環境にはやさしいです

 通常、各アプリケーションの実行ファイル(*.exe)やそのショートカットには、各アプリケーションに独特のアイコンが表示されています。これは、視覚的にわかりやすい利点がある一方で、それぞれのアイコンは実行ファイルの中に含まれているので、表示する際にはいちいち読み込む必要があります。もちろん、このような負担を軽減するために、ShellIconcacheやIconCache.dbのようなキャッシュの仕組みが用意されているのですが、キャッシュがあふれてしまうケースなど、全ての場合に有効というわけではありません。

 デフォルトでは各アプリケーション(*.exe)はそれぞれのアプリケーションに固有のアイコンを表示することになっていますが、エクスプローラでディレクトリを表示するときに、いちいち各ファイルのアイコンを表示することにあまり意味があるとは思えませんし、アイコンキャッシュがあふれる原因にもなります。そこで、「
いじくるつくーる」などのツールを使って、アプリケーション(*.exe)は全て同じアイコンで表示するように設定します。これによって、不要なディスクアクセスを減らすことができます。*.exeの他にも、*.bmpや*.dllなども同様に設定するとよいでしょう。

 このように設定すると、アプリケーションのショートカットを作った場合にも固有のアイコンが表示されなくなりますが、ショートカットのアイコンはプロパティから簡単に変更可能なので、デスクトップに置いてあるショートカットなど見た目が気になる場合には、必要なものだけを以前と同じように表示させることができます



2. 自分なりの工夫編

2-1. アイコンをshell32.dllから選ぶ

shell32.dllには、さまざまなアイコンが含まれています

 例えば、Microsoft Wordの文書ファイル(*.doc)のアイコンは、通常はMicrosoft Wordの実行ファイル(*.exe)から読み込まれて表示されています。同様に、Adobe Readerの文書ファイル(*.PDF)のアイコンはAdobe Readerの実行ファイルの中に、HTMLドキュメント(*.htm)のアイコンはInternet Explorerの実行ファイルの中にあります。このようにアイコン情報があちこちに散乱しているのは、 キャッシュがあふれるなどの理由でアイコン情報が必要になった時に、いちいちディスクアクセスが発生するので、あまり好ましくありません。

 そこでおすすめしたいのが、アイコンを全てshell32.dllから選ぶことです。shell32.dllは、95・98・Meなど9x系では、通常Windowsディレクトリのsystemサブディレクトリにあります。NT系ではsystem32サブディレクトリにあります。shell32.dllには、Windows95の頃から数多くのアイコンが含まれていますので、あまりこだわらなければ、*.docや*.htmなどの各ファイルタイプに適切なアイコンで選ぶことができると思います。このようにすることで、何らかの理由でアイコンを表示することになったとしても、元々メモりにあるshell32.dllから読み込むことになりますので、負担が軽くなります

 実際に各アイコンをshell32.dllに設定するためには、エクスプローラの「フォルダオプション」から、「ファイルの種類」を選んで、「アイコンの変更」を行うことで可能です。ただし、登録されているファイルの種類が多いとそれなりに大変ですし、この方法では変更できないアイコンもあるので、
KH IconMagicなどのツールを使うのもよいでしょう。もちろん、regeditを使って、HKEY_CLASSES_ROOTの下の各ファイルタイプの中にあるDefaultIconキーを直接書き換えてもかまいません。(一応、この下に拙作のプログラムもあります。)

 なお、究極の方法として、「アイコンを一切表示しない」というのも考えられますが、最低限フォルダアイコンなどは表示しないと見にくくなりますし、個人的にはあまりおすすめいたしません。


2-2. Iconhandlerを切る

 通常の場合、ファイルやフォルダのショートカットのアイコンは、そのショートカット先のアイコンになります。また、インターネットショートカットのアイコンは通常のやり方では変更することができません。これはいずれもIconhandlerという特殊な仕組みがあるからです。これはWindows 95の頃からXPに至るまで基本的には変わっていません。

 もし、このような特殊なアイコン表示の仕組みが不要であれば、Iconhandlerを切ることをお勧めします。Iconhandlerを切るやり方は簡単で、レジストリを「Iconhandler」で検索して見つかったものを、それぞれ削除するか別の名前(例えば「;Iconhandler」)に変えるだけです。特に、インターネットショートカットについては、お気に入りを開くたびにIconhandlerが呼ばれているはずなので、低速のマシンほど効果を実感できると思います。(もちろん、副作用としてインターネットショートカットのアイコンは、favicon.icoに関わらずすべて同じになります。)

 全てのIconhandlerを切るとショートカットのアイコンも同一になってしまうので、気になる方はお好みでショートカット(lnkfile)だけはIconhandlerを残してもいいかもしれません。

※レジストリをいじりますので、上の文章で意味のわからない方は実行しない方が無難です。


2-3. shell32.dllを減量する

 shell32.dllにアイコンが多く含まれているというのは既に2-1で述べた通りですが、同じ番号のアイコンのうち16色のアイコンだけを使うのであれば、256色以上のアイコンは不要ということになります。そこで、256色以上のアイコンを削除してshell32.dllの減量を試みました。(もっと簡単なやり方をご存知の方はぜひお知らせください。)
使うツール
簡単な説明
1. Resource Hackerでアイコンを取り出す
 Resource HackerはICONGROUP単位でないと削除できないようなので、全てのアイコンをいったんファイルに落とします。なお、直接shell32.dllを編集するのは危険なので、コピーしたものを使う方がいいでしょう。
reshacker -extract shell32.dll,icon.rc,ICONGROUP,,
2. @icon変換でマルチアイコンから不要なアイコンを削除する
 このようにして取り出したアイコンはそれぞれに16色、256色など複数のアイコンを含む状態になっています(マルチアイコン)。これを@icon変換で開き、条件選択で256色以上または48×48以上のサイズのアイコンだけを削除して、マルチアイコンに上書きします。これで、アイコンのファイルサイズはかなり小さくなります。


3. Resource Hackerでアイコンを戻す
 GoRCとResource Hackerを使って、アイコンをshell32.dllに書き戻します。
gorc /r icon.rc
reshacker -modify shell32,shell32new.dll,icon.res,ICONGROUP,,
4. 新しいshell32.dllをシステムにコピーする
 shell32.dllを直接上書きすることはできないので、SRCpyのようなツールを使うと便利です。
補足
 上で紹介した手順よりも、使わない番号のアイコンを丸々削除してしまう方が手順としては簡単ですが、番号がずれたり、場合によってエラーが出る可能性があるので、おすすめしません。また、さらに危険な作業になりますが、icon以外にaviやbmp、dialogにも手を加えて、shell32.dllのファイルサイズをより小さく改造することもできます。例えば、私が使っているWin98のshell32.dllは1.33 MB→768 KBになっていますが、手間に見合う効果があるかどうかは不明です。

 いずれにしても、ここで紹介した手順は最悪、OSが起動しなくなる可能性もありますので、実行はくれぐれも自己責任でお願いします。

3. 自作プログラム

3-1. Shl32ico - Shell32 Icon Reset Utility

English
βバージョンです

 効果があるかどうかわかりませんが、上の2-1,2-2の設定を行うためのユーティリティを作成しました。使う場合には、同梱されている文書等をよく読み、注意してお使いください。初心者の方向けのプログラムではありません。このプログラムはβバージョンです。

Shl32icoのダウンロード SHL32ICO.ZIP - Ver0.17 107KB (2007/02/19)

※Windows 95/98/Me/XPで動作確認しています。Windows NT/2000でも動くかも?しれません。VISTAには対応していません。

※Ver0.07でコンパイラをHSP3.0→2.61に変更するなど、内部でいろいろ変わっていますので、十分気をつけてください。
※Ver0.06でキーワード設定が変更できるようになりました。設定ファイルの投稿募集中です。


おわりに

 TrueTypeではなく負担の少ないビットマップフォントを利用する「山本式Win98風水変造」は有名ですが、負担の少ないshell32.dllのアイコンを使う設定は、この風水変造の考えに通じるものがあるのかもしれません。

 なお、各環境における動作報告(効果あり・なし)や、改良点・コメントなどありましたら、メールでご連絡いただければ幸いです。ただし、詳細な設定のやり方や各ツールの使い方についての質問には、いちいちお答えできませんので、そのようなメールはご遠慮ください。
counter

[ HomePage ]

ey5k-myhr@asahi-net.or.jp
Last modified 2007/02/19