HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2008
0311
makeバイナリデータの数値設定について4解決


make

リンク

2008/3/11(Tue) 02:46:51|NO.14077

レジストリのバイナリデータの数値設定方法がわかりません
変数で数値を設定すると思うのですがマニュアルには書き方もかいてありません
試しにsizeが1の時に0で設定した場合は30、aで設定した場合は61となります
個人的にsizeは4で「50 01 00 20」に設定したいのですが
どうすればいいんでしょうか?

例↓HKEY_USERSにtest01というkeyがあり
セクションtest02にバイナリデータを設定するとします

#include "hspext.as"
regkey 2,"test01",0 ;(2=HKEY_USERS)(0=exist-key)
hensu="50010020" ;→35,30,30,31になり意味不明、書き方も説明がない
setreg hensu,"test02",2,4 ;(2=vinary)(4=size)

dialog "test ok"
stop



この記事に返信する


f

リンク

2008/3/11(Tue) 08:08:38|NO.14078

バイナリデータ書いて無いからでね?

>hensu="50010020" ;→35,30,30,31

これは文字列を入れているだけだ。
35,30,30,31と言うのはキャラクタコードで「5,0,0,1」の事だ。

0x50,0x01,0x10,0x20の16進数で入れたいのなら、poke使えば良いんでね。



make

リンク

2008/3/11(Tue) 20:56:19|NO.14090

16進数とpoke命令はわかったのですがバッファのインデックス(byte)を複数設定する
書き方がわかりません、どのように書けばいいんでしょうか?


#include "hspext.as" regkey 2,"test01",0 ;(2=HKEY_USERS)(0=exist-key) poke bufa,0,80 ;(0=byte)(80=50)(ここから) hensua=bufa setreg hensua,"test02",2,4 ;(2=vinary)(4=size) poke bufb,1,01 hensub=bufb setreg hensub,"test02",2,4 poke bufc,2,00 hensuc=bufc setreg hensuc,"test02",2,4 ;(ここまで) poke bufd,3,32 ;** hensud=bufd ;** setreg hensud,"test02",2,4 ;** dialog "test ok" end

この書き方だと(ここから)〜(ここまで)が下の**3行により上書きされて
結果としてバイナリデータは00000020になってしまいます



f

リンク

2008/3/11(Tue) 23:05:17|NO.14101

・・・。

なんか色々な意味で惜しい感じだな。

#include "hspext.as" regkey 2,"test01",0 ;(2=HKEY_USERS)(0=exist-key) poke bufa,0,80 ;(0=byte)(80=50)(ここから) // bufa の中身が 80 ** ** ** ... になる。**は未定部分。おそらくHSPでは00になってる hensua=bufa // その内容をhensuaに入れる。この段階で数値変数なのか文字変数なのか全然分からん。動くもんだな。 setreg hensua,"test02",2,4 ;(2=vinary)(4=size) // test2にバイナリで80 ** ** ** を書き出す poke bufb,1,01 // bufb の中身が ** 01 ** ** ... になる。 hensub=bufb // hensub に bufbの中身を入れる setreg hensub,"test02",2,4 // 重要! // さっき書いたところに ** 01 ** **を上書きする poke bufc,2,00 hensuc=bufc setreg hensuc,"test02",2,4 ;(ここまで) poke bufd,3,32 ;** hensud=bufd ;** setreg hensud,"test02",2,4 ;** // 重要! // と言うわけで、最後に上書きした内容は ** ** ** 20 でした。 dialog "test ok" end

書いてる通りにしか動いてないが。
	sdim hensu . 4
poke hensu , 0 , 0x50 poke hensu , 1 , 0x01 poke hensu , 2 , 0x00 poke hensu , 3 , 0x20
素直にこう書けば良いんでね?



make

リンク

2008/3/12(Wed) 04:10:43|NO.14118

>fさん
解決しました、ありがとうございました



ONION software Copyright 1997-2021(c) All rights reserved.