Short cuts: [Prev][Up][Next] [Return to Top]
.Ico、.Ico、汝を如何せん              1997.Nov.19

  それはある問いから始まった。
 「xxという言葉にふさわしいIconはないのか?」
  しばし考えてある画面を出した。
 「これなんか、どう?うち(会社)が作った奴だし」
 「よし、それで行こう」
  が。作った部署が違う。だからソースがない。当然.icoもない。

  ちょっとやってみる、という程度のことで見知らぬ部署に電話して
 「担当者を出せ!」
  と、言える程ツラの皮は厚くない(ここ、突っ込むな!>私を知ってる人)ので
 自分でちょいちょいとやることにした。

  実はIconリソースの抽出ぐらい訳はないと思ったのが運の尽き。

1. IconPro
  抽出ツールと言えば確かIconProってなのがあったな……。
  C:\usr> fl iconpro

  fl、というのはNorton Utilityに付属していた(今もあるのかもしれないが)
 ファイル検索ツールである。スタートボタン→検索(F)→ファイルやフォルダ(F)
 と似たような機能なのだが、DOS窓であればご覧の通りそっちより遙かに低い
 労力で起動できるので、手が勝手にそう入力してしまうのだ。

  Norton Utilityも所持しているのは確かDOS 5ぐらいが対象の古いバージョン
 なのだが、flは2G超パーティションのFAT32 HDDでも問題なく(って内部処理を
 考えれば問題なく動いて不思議はないのだが)動作する。
  ds (Directory Sort)などは怖い(というか、FAT32でまともに動作するはずが
 ない)のでとうに消してしまったが、こいつは今も愛用している。

  ソフトベンダーから見ればこういう過去の遺産を好んで使う奴は全く売り上げに
 貢献しない嫌な野郎なんだろうけど、必要もないのにバージョンアップする趣味は
 ないので。(昔からそうだけど、最近は特に某社アプリのバージョンアップは怖くて
 できない。うっかりサービスパックなぞを当てようモンなら更に地獄を見るし)

  で。
  C:\MSTOOLS\SAMPLES\WIN32\ICONPRO
  iconpro.c 27,222 bytes 01:30 Fri 1996 Aug 9
  <中略>
  8 files found

  へ?
  SDKのサンプルじゃんか。(ちなみにこいつはソースをMSのWebから落とせる。
 前に落として、これってばSDKのと同じじゃんか〜と叫んだ記憶がある)

  早速nmake (泥縄〜。だけどSDKのサンプルを全てコンパイル済みで保持しておく
 根性はあたしにはない)。実行して先ほどの実行ファイルを見ようとするが、
 あれ?名前何だっけ?(爆)
  で、Ctrl + Esc→'S'→'T'、[スタート]メニューの設定、詳細(D)...
 結果:xx.cpl (実はコントロールパネルのアプレットだった)

  み!?
  IconProは.exe、.dllからの抽出はサポートしてるけど、.cplからは……。
 待て待て。.cplなんて所詮は.dllか.exeだ。renameすりゃあ同じ事。
  カレントディレクトリにその.cplをコピーしてと。
 (で、どっちにrenameしたか覚えてないんですが、多分.dllかな?)

  が、…無い。Iconが。こいつが使う他の.dllとかにあるのか?とQuick
 Viewer (Windowsに付属)でその.cplが使用する.dllを表示させてそっちの中身を
 探すがやっぱりない。

  考えることしばし。あ、もしかしてひょっとしてこれってば.bmpを貼って
 あるんかい?

2. VC++ 4.0
  ええとまともにリソースを見るには?dumpbin (VC++ 4.0付属のツール)...
 いや待て。あれは単にダンプするだけでねぇか。こんな時にBC++のリソース
 ワークショップがあれば……。ん?
  VCだってBCとの対抗上、できてもおかしくないはずだが。

  コマンドライン派なあたし(デバイスドライバのデバッグにIDEは使用できない。
 だからあんな重いモンを動かす趣味は毛頭ないのだ)故、滅多に起動しないIDEを
 立ち上げて見る。
  おぉ!(って初めからこうすれば良かったか?)

  やっぱり.bmpだった。これをsaveしてさぁIconProだ...(VCのIDEで.bmpを.icoに
 変換して保存ってできるの?IconProに.bmpからのimportがあるのは確認してたので
 VCのhelpは見なかったのだが)

3. GV
  しかし、この.bmpの形式が分からない。IconProは.bmpを読み込む前に色数、
 大きさは決定しておかねばならないのだが。
  どうしたかと言えば、GV (Freeな画像ビューワ。極めて有名)を起動して.bmp
 を読み込み画像情報を見る。
  32*32*16色!
  おぉ。楽勝。IconProは確かフルカラーまでサポートしてたし、32*32までとか
 言う制限もImageEdit (SDK付属。16色までのIconしか作れない)と違ってなかった
 はずだし(って、この文章を書いている自宅のマシンではIconProが何故かページ
 違反を起こしてしまい、この辺の確認ができない。会社のマシンではちゃんと
 動くのに……。ま、MS製だからしょうがない[苦笑]。でも変だな。そりゃぁpureな
 Windowsとは言えないにしても自宅マシンには極力MSのアプリは入れてないのだが?)

4. 再度IconPro
  結局、32*32*16でIconを新規作成して.bmpを読み込み、.icoとして保存。

  めでたしめでたし?

  しかし。たった1つの.Icoを得るために幾つアプリを使ったんだぁ?

                              − 以上 −

Short cuts: [Prev][Up][Next] [Return to Top]