#!tcsh if ($#argv != 0) then convert -colors 255 -geometry 16x16 $1 icon16.xpm convert -colors 255 -geometry 32x32 $1 icon32.xpm toico -o favicon.ico icon16.xpm icon32.xpm else echo "USAGE:" echo "% iconmake imagefile" echo "make 'favicon.ico' in this directory" endif
% iconmake xxx.jpg
#!ruby -Ks require "exerb/executable" require "exerb/resource" require "exerb/recipe" #製作するターゲット名 TARGET = "win_rdtitle" #埋め込むアイコン名 ICON = "favicon.ico" #レシピファイル ##事前に「ruby -r exerb/mkexr xxxx.rb」を実行して作成 RECIPE = TARGET + ".exr" #出力ファイル名 OUTPUT = TARGET + ".exe" #コアファイルを指定 CORE = "c:/cygwin/usr/local/ruby/share/exerb/ruby182g.exc" #アイコンの指定 ##前2つの16はアイコンのサイズ ##一番最後の8は 256色アイコンという意味(4なら16色アイコン) ##この辺りは埋め込むアイコンに応じて書き換える icon16 = Exerb::Resource::Icon.new_from_file(ICON, 16, 16, 8) icon32 = Exerb::Resource::Icon.new_from_file(ICON, 32, 32, 8) ##グループアイコン(多数のサイズを併せ持つようなの)の作成 group_icon = Exerb::Resource::GroupIcon.new group_icon.add(1, icon16) group_icon.add(2, icon32) #リソースに埋め込んで作成 recipe = Exerb::Recipe.new_from_file(RECIPE) executable = Exerb::Executable.new_from_file(CORE) executable.rsrc.add_icon(1, icon16) executable.rsrc.add_icon(2, icon32) executable.rsrc.add_group_icon(100, group_icon) executable.rsrc.add_archive(recipe.archive) executable.write_to_file(OUTPUT)
↑このようなスクリプトとMakefileを自動生成するスクリプトを
以下に用意しました。
#使用例 Makefileとmake.rbが出来る % config.rb --target main.rb --core ruby182g.exc --ruby-home C:/cygwin/usr/local/ruby-1.8.2-i386-mswin32/ # *.exeを作成 % make
#メインフレームの.. module Frm_form1 #起動時に呼ばれるメソッド内に記述 def self_created #自分のexeファイル名 exepath = "xxxx.exe" if test(?e, exepath) extractIconA = Win32API.new('shell32','ExtractIconA','LPI','L') #*.exeからアイコン情報を取得 myIconData = extractIconA.Call(0, exepath, 0) #謎のコマンドで置き換える sendMessage(128, 0, myIconData) end ....test()で括っているのは、 ソースから起動するとき等, *.exeが無い時にエラーにしないためです。
私のツールのページにある migemocsvのようなソフトをビルドするための準備方法です。
swin.soは以下に置く C:\cygwin\usr\local\ruby-1.8.2-i386-mswin32\lib\ruby\site_ruby\1.8\i386-msvcrt\swin.so vrubyは以下に置く C:\cygwin\usr\local\ruby-1.8.2-i386-mswin32\lib\ruby\site_ruby\1.8\vr\
% cd exerb-3.3.1/ % ruby setup.rb config % ruby setup.rb setup % ruby setup.rb installここで注意は、「ここのrubyは1.でインストールしたwin32版」である事。
% which ruby /bin/rubyになってたりしたら、cygwinの方のrubyなのでうまく行きません。。
ライブラリが以下にインストールされます C:\cygwin\usr\local\ruby-1.8.2-i386-mswin32\lib\ruby\site_ruby\1.8\exerb コアファイルが以下にインストールされます C:\cygwin\usr\local\ruby-1.8.2-i386-mswin32\share\exerb