| 
 | 
 
 
 
 
 |  | 
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
 
 | 
 
 
 
 |  | 
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使えば良いんでね。
 
 | 
 
 
 |  | 
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になってしまいます
 | 
 
 
 |  | 
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 . 4poke hensu , 0 , 0x50
	poke hensu , 1 , 0x01
	poke hensu , 2 , 0x00
	poke hensu , 3 , 0x20
 
素直にこう書けば良いんでね?
 | 
 
 
 |  | 
2008/3/12(Wed) 04:10:43|NO.14118 
>fさん解決しました、ありがとうございました
 
 | 
 
 
 |