Let's HSPIC! 追加インフォメーション

Last Update : 2008/07/xx

◇ はじめに

 「Let's HSPIC!」(フリーウェア)は、無料のWindowsプログラミングツール「HSP」(Hot Soup Processor)で作成した実行ファイル(*.exe)やスクリーンセーバーファイル(*.scr)のアイコンを書き換え変更するツールです。デフォルトのスープカップアイコンを自分が用意したアイコンに変更できます。HSP2製、HSP3製のどちらの実行ファイルにも対応してます。

 アイコンを変更する機能以外に、実行ファイルにバージョン情報データを埋め込む機能と、実行ファイル圧縮ソフト「UPX」を使って実行ファイルを実行可能なまま圧縮する機能をサポートしてます。

□ 「Let's HSPIC!」の初回起動時の設定

  1. 実行ファイルのアイコンを変更する処理は、リソースエディタ「Resource Hacker」(Angus Johnsonさん製作)に放り投げてます。そのページの下部分にある「Japanese: (Ver 3.4.0)」をダウンロードしておいてください。サイズは600KBぐらい。
  2. ZIPファイル「rh_japanese.zip」を解凍してください。解凍してできたフォルダは、たとえば「C:\Program Files\rh_japanese\」のような場所に置いといてください。
  3. この「Let's HSPIC!」(lhspic.exe)を起動します。ウィンドウ上で右クリックすると、ポップアップメニューが開くので、「リソースエディタのパス...」をクリックし、「Resource Hacker」の実行ファイル(ResHacker.exe)を選択してください。

^

◇ アイコンファイル

 アイコンファイル(*.ico)は、1つのアイコンファイル内にサイズや色数の異なる複数のアイコンデータが含まれている「マルチアイコン」タイプも利用できます。必要に応じて、16x16/32x32/48x48のサイズ、4ビット(16色)/8ビット(256色)/32ビットの色数の画像データを用意してください。32x32サイズのアイコンはいちおう必須です。

 画像ファイルからのアイコンファイルに変換したり、マルチアイコンタイプのアイコンファイルを作成するには、towofu's SOFTさん製作の「@icon変換」ツールがお勧めです。以下は、アイコン作成について参考になるページ。

^

◇ バージョン情報

 実行ファイルを右クリックすると表示されるポップアップメニューから選択できる「ファイルのプロパティ」ダイアログにバージョン情報タブを用意することができます。

 普通のテキストファイル(*.txt)を用意して、「メモ帳」などを使って下のような書式で記述してくだい。1行ごとに「パラメータ名+半角イコール+文字列」の形式です。行の先頭に「;」(セミコロン)があると、コメント扱いになります。

;	←先頭に「;」がある行は無視
(パラメータ名)=(文字列)
(パラメータ名)=(文字列)
	:
	:
パラメータ名 説明
_FILEVERSION 実行ファイル自体のバージョン値です。文字列を必ず「(数値).(数値).(数値).(数値)」の形式で書いてください。日本語やアルファベットは×。
ファイルのプロパティのバージョン情報タブの「ファイル バージョン」に表示されます。エクスプローラなどでファイル上にマウスを置くと表示されるツールチップ上にも表示されます。
(バージョン数値の例)
 v2.61 → 2.61.0.0
 v3.0 → 3.0.0.0
 v3.0a → 3.0.1.0
_PRODUCTVERSION 1ソフトウェア全体のバージョン値です。文字列を必ず「(数値).(数値).(数値).(数値)」の形式で書いてください。個人が製作するものであれば、基本的には上と同じ数値でしょう。
Comments 実行ファイル バージョン情報 のページを参照。
CompanyName
FileDescription
FileVersion
InternalName
LegalCopyright
LegalTrademarks
OriginalFilename
PrivateBuild
ProductName
ProductVersion
SpecialBuild

 同封してる「version_sample.txt」はサンプルです。たとえば、「version_ほげほげパズル.txt」や「version_あいうえツール.txt」みたいな感じで、製作してるプログラムごとにバージョン情報のデータが書かれてあるテキストファイルを用意しとくといいと思います。

□ VIMツール
 GUI上でバージョン情報文字列を指定して、バージョン情報用のテキストファイルを出力するツールというのを公開されてます。ありがとうございますですー。(→ Tomoppe Worldさん)

^

◇ UPX圧縮

 実行ファイル圧縮ソフト「UPX」をHSP製実行ファイルに適用する機能です。実行ファイル(*.exe/*.scr)を実行可能なままサイズを小さくしてしまうことができます。普通にHSP製実行ファイルにこれを適用しようとすると、エラーで起動できなくなってしまうので、エラーにならないよう圧縮処理を行います。(ただ、スクリプトの量がかなり大きい場合はそれほどサイズは変化しません。)

 UPXは「upx***w.zip | Win32 console version」というのを公式サイトから別途入手してください。ZIPファイルを解凍後、実行ファイル「upx.exe」だけを「Let's HSPIC!」と同じフォルダに置いといてください。他のファイルはいりません。

 Windows XP SP2以降とWindows Vista環境で、Windows標準のZIPファイル解凍機能を利用していると、「upx.exe」が実行される段階で「セキュリティの警告」ダイアログが表示されてしまうので、あらかじめファイルのプロパティダイアログで[ブロックの解除]をしておいてください。(参照

 「Let's HSPIC!」のバージョン0.9から、UPXのコマンドラインオプション文字列を追加指定できます。設定ファイル「lhspic.ini」を直接編集してください。オプションが複数ある場合は、半角スペースで区切ります。

UPXCommand=(コマンドライン)

 たとえば、UPXの正式バージョン3.00以降で試験的に対応している「LZMA」アルゴリズムを使用する例。これは圧縮ファイルの「7-Zip形式」で使われてる圧縮アルゴリズムで、通常よりも若干圧縮率が高い感じです。

UPXCommand=--lzma

^

◇ Q&A

アンチウイルスソフト・セキュリティ対策ソフトが「ウイルス」と認識します。
⇒ ウイルス名「Bloodhound.Overpacked」や「KillWin」は、対策ソフト側の誤認識です。最新版で対策済み。

ウィンドウ上にHSP製実行ファイルをドラッグ&ドロップすると、Windowsのシステムエラーなどでプログラムが落ちます。
⇒ 環境によって起こるバグです。最新版で修正済み。

HSP製実行ファイルを読み込んでも、実行ファイルのパスとして認識しません。
⇒ Windows 9x系OSでのみ起こるバグです。最新版で修正済み。

アイコンファイルを読み込んでも、アイコンファイルのパスとして認識しません。
⇒ 正しいアイコンファイルか、アイコンファイルが壊れてないかを確認してください。BMPファイル(*.bmp)の拡張子をただ単に変更しただけのものは利用できません。

アイコン変更後も実行ファイルのアイコンが変わってません。
⇒ Windowsにはエクスプローラなどで表示を高速化するためアイコンデータをキャッシュする機能が存在します。そのため、以前のアイコン画像がそのPC上では反映されたままになる可能性があります。「Resource Hacker」で実行ファイルを読み込んで[Icon Group]ツリーをチェックすれば内部が書き換わってることが分かるはずなので、エクスプローラで[表示]→[最新の情報に更新]を行うか、究極的にはPCを再起動して確認してください。

アイコンの書き換えやバージョン情報付加を行わないで、UPX圧縮だけを施したい。
⇒ UPX圧縮だけを行うことはできないようになっています。UPX圧縮専門のツール「Let's HSPUPX!」を利用するか、ダミーのアイコン(HSPスープカップ)を指定しちゃってください。

アイコンの書き換えやUPX圧縮に異常に時間がかかります。
⇒ 実行ファイルのサイズがかなーり大きめだと、処理に時間を要します。この時、「Let's HSPIC!」が半フリーズ状態になってしまう場合があります。Resource Hackerを使ってHSPランタイムのアイコンをあらかじめ書き換えておく手法を試してみてください。(→ HSP製実行ファイルのアイコン変更

UPX圧縮の段階でエラーが表示されます。
⇒ 外部プログラムUPXに放り投げる関係で、エラーが表示されてしまう場合があります。PCを再起動して試してみてください。

「Let's HSPIC!」、「Resource Hacker」、「UPX」をアンインストールするには?
⇒ 「Let's HSPIC!」は、本体と同じフォルダに出力される設定ファイル「lhspic.ini」に設定を保存してます。また、Angus Johnsonさん製作の「Resource Hacker」も同様に「ResHacker.ini」に保存してます。どちらもレジストリはいじってないので、フォルダごと削除してください。「UPX」(upx.exe)は設定データを出力する処理がそもそもありません。

自分が製作したプログラムからアイコン書き換え処理を利用したい。
⇒ 「Let's HSPIC!」自体には外部プログラム(自作HSPコンパイラとか)から利用できる機能は用意してません。で、「lhspicc.exe」というDOSコンソールプログラムを公開してます。これは外部プログラムからHSP3製実行ファイルのアイコン変更を想定してるものです。アイコンの書き換え処理を自身で実装してるので「Resource Hacker」はいりませんが、Windows 9x系OSでは動作しません。
 その他、PEヘッダーの知識が必要ですが、バイナリレベルで書き換える・・・。(→ 参照、旧HSP3公式掲示板の過去ログ

バージョン番号はどのような数値にするのがいいのでしょう。
 バージョン番号の決め方は人によってバラバラで、決まりも別にありません。
 たとえば、よくあるのが正式版が「1.0」、小さな変更を行ったものが「1.0.1」、それなりに普通の変更で「1.1」(1.1.0)、かなり大きな変更で「2.0」(2.0.0)というような感じで数値を増やしていきます。(Windowsのバージョン変遷、HSPのバージョン変遷

HSP 3.2ベータ版に付属する拡張ランタイム「hsp3mt.hrt」を利用した実行ファイルが「無効なファイルです。(1)」エラーになる。
 これについては原因は分かってますが、互換の問題が出てくるのと、「ベータ版+試験的に用意されたランタイム」なので対応を保留してます。現状ではResource Hackerを使って「hsp3mt.hrt」のアイコンをあらかじめ書き換えておく手法を行ってください。(→ HSP製実行ファイルのアイコン変更

※「Let's HSPIC!」に関して何かありましたら、BBSEメールでどぞっ!

^

Copyright © 2005-2008 Kpan. All rights reserved.