icoファイルはPACKFILEに追加しても指定できない?
亜 2013/4/30(Tue) 21:52:27|NO.53727
ttp://hsp.tv/play/pforum.php?mode=pastwch&num=47647
このモジュールを使って、トレイアイコン表示をしています。
DestroyTrayIcon:SetTrayIconFile "normal.ico":CreateTray...
のように切り替えるコードを追加(今のアイコンを破壊、別のアイコンファイルを指定、表示)で
HSPエディタ上ではうまくいくのですが、実行ファイルを作ってみるとうまくいきません。
実行ファイルと同じフォルダに、切り替えるときのicoファイルをコピーしておくと
切り替えられますが、”できればEXEに同梱したい”です。
PACKFILEに追加してもできないのはなぜでしょうか?
(EXEファイル自体のアイコン変更には「lhspic」を使っています。)
○
HSPエディタ上での実行
EXEファイル単体&icoファイル
×
EXEファイル単体(PACKFILEで同梱)
EXEファイル単体(梱包なし)←当然ですが
KA 2013/5/1(Wed) 12:01:46|NO.53734
パックファイルはHSP本体しかアクセス出来ないからでしょう。
一旦ファイルとして書き出せば可能だと思います。
亜 2013/5/1(Wed) 14:41:44|NO.53736
> 一旦ファイルとして書き出せば
確かにそうなのですが・・・
でも(記憶が正しければ)picloadなどでは、PACKFILEに入れたJPG画像などを
普通に参照できます。
画像が参照できるのに、icoが参照できないのが不思議です。
test 2013/5/1(Wed) 15:24:49|NO.53737
KAさんは
> パックファイルはHSP本体しかアクセス出来ない
と述べています。つまりパックファイルはHSPが持っている機能であると考えることができます。
picloadはHSPの命令なのでパックファイルに対応しています。つまり、ファイル名を見つけたらパックファイルの中から探すことができます。
しかしそのモジュールのetTrayIconFileで設定したファイル名は、最終的にWin32 API(Windowsに備わっている命令)のExtractIconExによって読み込まれています。
これはHSPが用意した機能ではないですから、パックファイルには対応していないということです。
逆にいえば、試していませんが、たとえicoなどであっても、HSP命令のbloadなどならパックファイルに対応しているので読み込めます。
暇人 2013/5/1(Wed) 17:24:14|NO.53742
タスクトレイ アイコン操作
http://lldev.jp/hsp/module/tticon.html
ここのmakeiconモジュールにあるmake_icon命令使えば
ウィンドウに読み込んだ画像から
アイコンハンドル取得できるから
ExtractIconExの代わりに使えそうな気がする