07/05/17 21:46:05 lJm49cl1
#module
#uselib "ADVAPI32.DLL"
#cfunc RegOpenKey "RegOpenKeyExA" int,int,int,int,int
#cfunc RegQueryValue "RegQueryValueExA" int,int,int,int,int,int
#cfunc RegCreateKey "RegCreateKeyExA" int,int,int,int,int,int,int,int,int
#cfunc RegSetValue "RegSetValueExA" int,int,int,int,int,int
#cfunc RegDeleteKey "RegDeleteKeyA" int,int
#func RegCloseKey "RegCloseKey" int
#define KEY_READ 0x00020019
#defcfunc ReadReg int _key, var _subkey, var _data
hkey = 0 //↓規定値を読み込む
if RegOpenKey( _key, varptr(_subkey), 0, KEY_READ, varptr(hkey) ) == 0 {
size = 0
if RegQueryValue( hkey, 0, 0, 0, 0, varptr(size) ) == 0 {
sdim buf, size
a = RegQueryValue( hkey, 0, 0, 0, varptr(buf), varptr(size) )
RegCloseKey hkey
_data = buf
return 0 //キーの取得に成功。
}
else {
RegCloseKey hkey
return -2 //取得に失敗。(ほぼ在り得ないと思うが)
}
}
else {
RegCloseKey hkey
return -1 //キーが無いとき
}
891:名前は開発中のものです。
07/05/17 21:46:59 lJm49cl1
#define REG_OPTION_NON_VOLATILE 0x00000000 //情報はディスクファイルに保存され、システムを再起動時しても情報は失われません。
#define KEY_WRITE 0x00020006
#define REG_SZ 0x00000001
#defcfunc WriteReg int _key, var _subkey, var _data
hkey = 0 //↓規定値に書き込む
if RegCreateKey( _key, varptr(_subkey), 0, 0, REG_OPTION_NON_VOLATILE, KEY_WRITE, 0, varptr(hkey), 0) == 0 {
if RegSetValue( hkey, 0, 0, REG_SZ, varptr(_data), strlen(_data)+1 ) == 0 {
RegCloseKey hkey
return 0 //書き込みに成功
}
else {
RegCloseKey hkey
return -2 //書き込みに失敗
}
}
else {
RegCloseKey hkey
return -1 //キーのオープンまたは作成に失敗
}
#defcfunc DeleteReg int _hkey, var _subkey
return RegDeleteKey( _hkey, varptr(_subkey) )
#global
#define HKEY_CLASSES_ROOT 0x80000000
前に作ったやつをそのまま。参考に
892:名前は開発中のものです。
07/05/17 23:11:30 ECrUiSe6
>>890 >>891
ウォォッ!ありがとう!
激しく参考にさせて頂きます。
('A`)ガンバルゼ
893:名前は開発中のものです。
07/05/18 03:44:38 fYCuLcq6
うを、まじかっ