Elona改造講座 第22回(実行ファイルのアイコン変更)

自分なりに改造したElonaをヴァリアントとして配布する際にネックとなるのは実行ファイルのアイコン画像の設定でしょう。今回は実行ファイルのアイコンを差し替えてみます。例ではMMA系列のヴァリアントを配布する場合を想定して、自分でコンパイルしたElonaをMMA(h)のアイコンに置き換えてみます。

①アイコン画像の抜き出し

まずは既存の実行ファイルからアイコン画像を抜き出します。あらかじめ下記のページからResource Hackerをダウンロードしておいてください。
https://angusj.com/resourcehacker/

MMA(h)の実行ファイル(パンアイコンのexe)をResource Hackerで開きましょう。メニューのFile->Openでもドラッグ&ドロップでもどちらでもかまいません。

MMA(h)の実行ファイルをResource Hackerで開きます

開いたら左側のタブの「Icon Group」の中にある「128 : 1033」を選択します。右側に様々なサイズのパンアイコンが表示されたかと思います。

Icon Groupの「128 : 1033」を選択しました

ここで「128 : 1033」を右クリックして「Save *.ico resource...」を選択し、適当な名前で保存します。今回は「mmah_icon_128.ico」という名前で保存しました。

アイコン画像をファイルに保存します

②実行ファイルの書き換え(失敗例)

次に抜き出した「mmah_icon_128.ico」を自分でビルドしたElonaの実行ファイルに反映します。ここで「生成済みの実行ファイルのアイコンをResource Hackerで変えたらいいのでは?」と思う人もいるでしょうが、結論から言うと今回の場合それはできません。
確かに通常の実行ファイルならその方法でも可能です。
……が、HSPの場合はリソースの改変を検知する機能があるようで、この方法でアイコンを変えると「Startup failed.」と表示され実行できなくなってしまいます。
(ファイルサイズやチェックサムで改変を検知しているのでは、との説があるようです)

Resource Hackerでアイコンを書き換えてみると……
残念! 実行できませんでした!

③実行ファイルの書き換え(成功例)

生成後の実行ファイルのアイコンは書き換えできません。
ならばどうするか? 答えは一つですね。
生成前のアイコンの方を書き換えてしまいましょう!
HSPのフォルダ(hsed3.exe等があるフォルダです)にある「hsprt」というファイルをResource Hackerで開きます。

「hsprt」ファイルをResource Hackerで開きました
見慣れたカップのアイコンが見えますね

このファイルの「Icon Group」の「128 : 1033」を右クリックし、メニューの「Replace icon...」を選択して、パンアイコンに差し替えましょう。星マークが赤い状態ではまだ保存されていません。問題無さそうなことを確認したら保存してください。星マークが緑になれば差し替え完了です。

hsprtのアイコンを差し替えました
(この状態では星マークが赤い為、まだ保存はしていません)

アイコンの差し替えが完了したら、後は通常通りに「実行ファイル自動作成」でコンパイルを実行します。特に何事もなくコンパイルが完了するかと思いますが、生成された実行ファイルを見るとアイコンが変化しています。

hsprtを差し替えてコンパイルすることでアイコンが変更できました!

④注意点

アイコンの変更はすぐには反映されない場合があるようです。
「あれ? アイコンが変わらないぞ?」と思った時には表示を更新する、フォルダを開き直す、実行ファイルのプロパティを見るなどで、本当に変更されたかどうかを確認してみましょう。
生成された実行ファイルをResource Hackerで開いてみるのも良い方法です。

⑤終わりに

今回はResource Hackerのみを使用してアイコンの抽出と差し替えを行いましたが、有志の方がアイコン変更ツール「Let's HSPIC!」を製作されているので、そういったツールを使えばより簡単にアイコンが変更できるかと思います。

Resource Hackerを用いたアイコン変更方法を上手く利用すれば、アイコンの設定されていないソフト(例えばSAI2等)に自作アイコンを設定することなどもできるようになりますので、是非覚えておきましょう!
(アイコンが設定されていないソフトの場合、一旦適当なexeのアイコンを差し替えた後、そのexeから目当てのexeにアイコンをコピーするなどといった手順が必要になるかもしれません)

この記事が気に入ったらサポートをしてみませんか?