VC++6.0でMFCを使って、コンパイル済みのEXEファイルの
アイコンを変更したいのですが、可能でしょうか?
Webで検索しましたが、コンパイル時にアイコンを読み込む
アイコンを変更する方法しか見つけることができませんでした。
EXEのアイコンを変更することなんて、普通はできないような
気がしますが、知っている方がいるようでしたら、ご教授下さい。
よろしくお願いいたします
「リソースハッカー」でもどうぞ。
VC++ラウンジの内容から逸脱していますので、
詳細は他サイトを当たってください。
そういうプログラムを自作したいってことなら、UpdateResource() かな。
#VC++ の IDE でも .exe ファイルを開いてアイコン変更くらいは
#できるけど、リソースハッカーってそれよりも便利なのかしら?
回答頂きありがとうございます。
UpdateResourceでEXEのアイコンの変更はできました。
しかし、通常のEXEの変更はできたのですが、UNLHA32.DLLでの
自己解凍EXEのアイコンを変更すると、「ヘッダの内容が不正」
のエラーが出てしまいます。
自己解凍型のEXEはUpdateResourceでは変更できないのでしょうか?
よろしくお願いいたします。
>しかし、通常のEXEの変更はできたのですが、UNLHA32.DLLでの
>自己解凍EXEのアイコンを変更すると、「ヘッダの内容が不正」
自分は UNLHA32.DLL を使ってないのでよくわからないですが、
Win32 型の EXE なら、リソース名が間違ってさえいなければ
置き換えれそうな気がします。
DOS 型だったら無理な気がします。
#VC++ の IDE で対象の .exe ファイルを開いて([用途]リソース指定で)
#調べてみてください。
重要なことを言い忘れました。
技術的な話とは関係ないですが、
UNLHA32.DLL で作成された自己解凍exeのスタブモジュール部分を改変し、
その 自己解凍exe を他の人に配布したりすると著作権違反に抵触する
可能性があります。
アイコンもスタブモジュールに含まれるので例外ではないと思います。
個人用の楽しみとして利用する以外の場合は、
原作者の許諾を得たうえで実施してください。
また、商用利用ならスタブモジュールを改変しない場合でも
原作者の許諾を得るのが筋なので気をつけてください。
あと、UpdateResource() は Win9x 系の OS では動作しません。
やはり自己解凍型ではアイコンの変更はできなみたいです。
単なる勉強の一環でやっていることなので、著作権等は
問題ないと考えています。
返事を下さった方、ありがとうございました。
もう解決印がついてますが、一応補足です。
論点を誤ってませんか? アイコンの変更は出来たんですよね?
その上で、アイコン変更(=実行ファイルの一部変更)後に解凍出来なくなるって話で
あって、それは既にアイコン変更の話とは関係ないと思います。
つまり、自己解凍をする時に、どういうチェックを行っているかに依存する話です。
例えば自己解凍型ファイルを生成する際に、元ファイルのcheck sum等も取得して
あって、解凍時のそれを使ってチェックをしているなんて場合は、当然一部を改変
してしまえば、チェックに引っかかってしまうでしょう。