advapi32を利用したレジストリ読み出し。HSP3標準エディタの「起動時のカレントディレクトリ」を読み出します。
事前にデータの大きさを知ることができる分、hspextよりも便利かもしれません。
ここでは利用していませんが、エラーの原因を詳しく追及することもできます。// 参考(というか丸写し)
// ちょくとのページ:レジストリに保存してみる
// http://yokohama.cool.ne.jp/chokuto/urawaza/registry.html
#uselib "advapi32.dll"
#func global RegCloseKey "RegCloseKey" sptr
#func global RegOpenKeyExA "RegOpenKeyExA" sptr,sptr,sptr,sptr,sptr
#func global RegQueryValueExA "RegQueryValueExA" sptr,sptr,sptr,sptr,sptr,sptr
#const HKEY_CURRENT_USER 0x80000001
#const KEY_QUERY_VALUE 0x0001
// レジストリキーをオープン
name = "Software\\OnionSoftware\\hsed3"
RegOpenKeyExA HKEY_CURRENT_USER, name, 0, KEY_QUERY_VALUE, varptr(hkey)
if stat != 0 {
dialog "キーをオープンできません。", 1
end
}
// データのサイズを取得
RegQueryValueExA hkey, "startdir", 0, 0, 0, varptr(size)
if stat != 0 {
mes "データサイズを取得できませんでした。"
} else {
mes strf("データサイズは%dバイトです。", size)
// 文字列データを取得
sdim result, size
RegQueryValueExA hkey, "startdir", 0, 0, varptr(result), varptr(size)
if stat != 0 {
mes "データを取得できませんでした。"
} else {
mes result
}
}
// レジストリキーのハンドルをクローズ
RegCloseKey hkey
stop
2007年12月28日金曜日
レジストリを読み出す(advapi32)
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿