Last Update : 2010/02/xx
「lhspicc.exe」(フリーウェア)は、無料のWindowsプログラミングツール「HSP」(Hot Soup Processor)で作成した実行ファイル(*.exe)やスクリーンセーバーファイル(*.scr)のアイコンを書き換えるコンソールプログラムです。たとえば、HSP用のコンパイラやスクリプトエディタなどを製作して、それにアイコン変更機能を実装したい場合なんかで利用できます。(自作ソフトに同封して配布するのはご自由に。)
普通にGUI上でアイコンを書き換えたい方は、拙作のアイコン変更ツール「Let's HSPIC!」をどぞー。このコンソールプログラムは、リソースエディタ「Resource Hacker」のような外部ツールは一切使いません。
「lhspicc.exe」が対応している動作環境は下のとおりです。OSにより制限があるので注意してください。つまりは、Windows 9x系OSでは利用できません。また、アイコンの書き換え対象となる実行ファイルにも制限があり、HSP3製実行ファイルのみの対応です。
|
|
OSが対応しているかをHSPのスクリプトコード上から確認するには、普通にHSPのsysinfo関数(sysinfo命令)をチェックするほかに、下のような方法でも可能です。
; 簡易? OSちぇっく(HSP3) #uselib "kernel32" #cfunc BeginUpdateResource "BeginUpdateResourceA" str, int ; 対応していない場合は 0 が返る if varptr(BeginUpdateResource) = 0 { mes "× 利用できませーん。" } else { mes "○ 利用できますー。" }
アイコンファイル(*.ico)に関しては特に制約はありません。マルチアイコンタイプも適用できるようにしてあります。
「lhspicc.exe」はDOSコンソールプログラム、いわゆるコマンドプロンプト上で動作するものです。これをHSP(HSP2/HSP3)のスクリプト上からの呼び出すには、普通にexec命令やHSP拡張プラグインhspext.dllのpipeexec命令を利用します。
下は、HSP3でWindows APIを利用したタスク待ち実行を利用したサンプルです。タスク待ち実行は、HSP2のexec命令に存在したモード(モード1)でHSP3では機能が削除されてます。
// タスク実行待ち実行(HSP3用) #include "shell32.as" #include "kernel32.as" sdim lpFile, 128 sdim lpParameters, 128 ; lhspicc.exeのファイルパス lpFile = "C:\\Hsp31\\lhspicc.exe" ; lhspicc.exeに渡すパラメータ lpParameters = "-e\"C:\\Hsp31\\hoge.exe\" -i\"C:\\Hsp31\\hoge.ico\"" ; コンソールの表示形式 (0=非表示、1=表示、2=最小化) nShow = 1 dim SHELLEXECUTEINFO, 15 SHELLEXECUTEINFO = 60, $40, hwnd, 0, varptr(lpFile), varptr(lpParameters), 0, nShow ShellExecuteEx varptr(SHELLEXECUTEINFO) WaitForSingleObject SHELLEXECUTEINFO.14, -1 CloseHandle SHELLEXECUTEINFO.14
// タスク実行待ち実行(HSP2用) ; lhspicc.exeのファイルパス lpFile = "C:\\Hsp31\\lhspicc.exe" ; タスク実行待ちで exec ""+lpFile+" -e\"C:\\Hsp31\\hoge.exe\" -i\"C:\\Hsp31\\hoge.ico\"", 1
「lhspicc.exe」をバッチファイル(*.bat)経由で実行する方法です。下のようなファイル群を同じフォルダに用意してください。
lhspicc.exe sample.exe (書き換える実行ファイル) sample.ico (書き換えに利用するアイコンファイル) hoge.bat
バッチファイルの中身は下のようになります。Windowsのメモ帳などで打ち込んでテキストファイルを保存し、その拡張子を「*.txt → *.bat」に変更します。ファイル名は何でもかまいません(上では「hoge.bat」という名前)
lhspicc -e"sample.exe" -i"sample.ico"
4つのファイルがそろったら、BATファイル(*.bat)をダブルクリックして実行してください。
.
Copyright © 2005-2011 Kpan. All rights reserved.