コンパイル済みのEXEのアイコン変更

[戻る]
shige 2005/02/18(金) 22:47:06
VC++6.0でMFCを使って、コンパイル済みのEXEファイルの
アイコンを変更したいのですが、可能でしょうか?
Webで検索しましたが、コンパイル時にアイコンを読み込む
アイコンを変更する方法しか見つけることができませんでした。
EXEのアイコンを変更することなんて、普通はできないような
気がしますが、知っている方がいるようでしたら、ご教授下さい。
よろしくお願いいたします

curren 2005/02/19(土) 07:22:42
「リソースハッカー」でもどうぞ。
VC++ラウンジの内容から逸脱していますので、
詳細は他サイトを当たってください。

さり 2005/02/19(土) 15:09:20
そういうプログラムを自作したいってことなら、UpdateResource() かな。

#VC++ の IDE でも .exe ファイルを開いてアイコン変更くらいは
#できるけど、リソースハッカーってそれよりも便利なのかしら?

shige 2005/02/20(日) 11:09:06
回答頂きありがとうございます。
UpdateResourceでEXEのアイコンの変更はできました。
しかし、通常のEXEの変更はできたのですが、UNLHA32.DLLでの
自己解凍EXEのアイコンを変更すると、「ヘッダの内容が不正」
のエラーが出てしまいます。
自己解凍型のEXEはUpdateResourceでは変更できないのでしょうか?
よろしくお願いいたします。

さり 2005/02/20(日) 23:13:40
>しかし、通常のEXEの変更はできたのですが、UNLHA32.DLLでの
>自己解凍EXEのアイコンを変更すると、「ヘッダの内容が不正」

自分は UNLHA32.DLL を使ってないのでよくわからないですが、
Win32 型の EXE なら、リソース名が間違ってさえいなければ
置き換えれそうな気がします。
DOS 型だったら無理な気がします。

#VC++ の IDE で対象の .exe ファイルを開いて([用途]リソース指定で)
#調べてみてください。

さり 2005/02/21(月) 00:34:15
重要なことを言い忘れました。

技術的な話とは関係ないですが、
UNLHA32.DLL で作成された自己解凍exeのスタブモジュール部分を改変し、
その 自己解凍exe を他の人に配布したりすると著作権違反に抵触する
可能性があります。
アイコンもスタブモジュールに含まれるので例外ではないと思います。

個人用の楽しみとして利用する以外の場合は、
原作者の許諾を得たうえで実施してください。
また、商用利用ならスタブモジュールを改変しない場合でも
原作者の許諾を得るのが筋なので気をつけてください。


あと、UpdateResource() は Win9x 系の OS では動作しません。

shige 2005/02/23(水) 23:54:30
[[解決]]
やはり自己解凍型ではアイコンの変更はできなみたいです。
単なる勉強の一環でやっていることなので、著作権等は
問題ないと考えています。
返事を下さった方、ありがとうございました。

とおり 2005/02/24(木) 02:40:41
もう解決印がついてますが、一応補足です。

論点を誤ってませんか? アイコンの変更は出来たんですよね?

その上で、アイコン変更(=実行ファイルの一部変更)後に解凍出来なくなるって話で
あって、それは既にアイコン変更の話とは関係ないと思います。
つまり、自己解凍をする時に、どういうチェックを行っているかに依存する話です。
例えば自己解凍型ファイルを生成する際に、元ファイルのcheck sum等も取得して
あって、解凍時のそれを使ってチェックをしているなんて場合は、当然一部を改変
してしまえば、チェックに引っかかってしまうでしょう。

古いスレッドには追加発言できません。