hi all
heres a little registry lib to use, i coded this sometime back. hope its usefull
.decls
;
; BlitzPlus registry decls.
;
.lib "advapi32.dll"
apiRegOpenKey%(hKey%,lpSubKey$,ulOptions%,samDesired%,phkResult*):"RegOpenKeyExA"
apiRegCloseKey%(hKey%):"RegCloseKey"
apiRegQueryValue%(hKey%,lpValueName$,lpReserved%,lpType*,lpData*,lpcbData*):"RegQueryValueExA"
apiRegSetValue%(hKey%,lpValueName$,Reserved%,dwType%,lpData*,cbData%):"RegSetValueExA"
and a example
;
;
;
Const HKEY_CLASSES_ROOT = $80000000
Const HKEY_CURRENT_USER = $80000001
Const HKEY_LOCAL_MACHINE = $80000002
Const HKEY_USERS = $80000003
Const KEY_QUERY_VALUE = $1
Const KEY_SET_VALUE = $2
Const KEY_CREATE_SUB_KEY = $4
Const KEY_ENUMERATE_SUB_KEYS = $8
Const KEY_NOTIFY = $10
Const KEY_CREATE_LINK = $20
Const SYNCHRONIZE = $100000
Const KEY_ACCESS_ALL = KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY
;
reg_key = OpenRegKey(HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\")
;key_type = ReadRegSubKeyType(reg_key,"AltDefaultDomainName")
;reg_item$ = ReadRegSubKeyText(reg_key,"AltDefaultDomainName")
;new_changed_key = WriteRegSubKeyText(reg_key,"AltDefaultDomainName",1,"HOMEPC-B0KRMZVQ")
;new_key_created = WriteRegSubKeyText(reg_key,"DefaultDomainName",1,"KEV_BEEN_HERE")
key_exits$ = ReadRegSubKeyText(reg_key,"AltDefaultDomainName")
;Notify key_exits$
Print key_exits$
MouseWait
close_key = CloseRegKey(reg_key)
;Notify reg_key
End
; Opens registry key for read\write operations
;
; TypeKEY , registry key root.
; PathKEY$ , the sub key location in the registry.
;
Function OpenRegKey(TypeKEY,PathKEY$)
pkresult = CreateBank(255)
ERROR_SUCCESS = apiRegOpenKey(TypeKEY,PathKEY$,0,KEY_ACCESS_ALL,pkresult)
open_hkey = PeekInt(pkresult,0)
FreeBank pkresult
If ERROR_SUCCESS = 0 Then
Return open_hkey
Else
Return ERROR_SUCCESS
EndIf
End Function
; Closes open registry key.
;
; hKey , registry key pointer returned by OpenRegKey()
;
;
Function CloseRegKey(hKEY)
ERROR_SUCCESS = apiRegCloseKey(hKEY)
Return ERROR_SUCCESS
End Function
; Returns subitem data type from registry sub key.
;
; hKEY , registry key pointer returned by OpenRegKey()
; ItemNAME$ , sub key itemntype of value to return.
;
Function ReadRegSubKeyType(hKEY,ItemNAME$)
return_val_type = CreateBank(256)
return_val_data = CreateBank(255)
lp_val_data_size = CreateBank(0)
ERROR_SUCCESS = apiRegQueryValue(hKEY,ItemNAME$,0,return_val_type,return_val_data,lp_val_data_size)
type_key = PeekInt(return_val_type,0)
FreeBank return_val_type
FreeBank return_val_data
FreeBank lp_val_data_size
If ERROR_SUCCESS = 0 Then
Return type_key
Else
Return ERROR_SUCCESS
EndIf
End Function
; Reads subitem data value from registry key.
;
; hKEY , registry key pointer returned by OpenRegKey()
; ItemNAME$ , sub key item of value to return.
;
Function ReadRegSubKeyText$(hKEY,ItemNAME$)
return_val_type = CreateBank(256)
return_val_data = CreateBank(255)
lp_val_data_size = CreateBank(0)
ERROR_SUCCESS = apiRegQueryValue(hKEY,ItemNAME$,0,return_val_type,return_val_data,lp_val_data_size)
If ERROR_SUCCESS = 0 Then
key_dataitem_length = PeekInt(lp_val_data_size,0)
For loop = 0 To key_dataitem_length
key_data_value$ = key_data_value$ + Chr(PeekByte(return_val_data,loop))
Next
EndIf
FreeBank return_val_type
FreeBank return_val_data
FreeBank lp_val_data_size
If ERROR_SUCCESS = 0 Then
Return key_data_value$
Else
Return ERROR_SUCCESS
EndIf
End Function
; Writes subitem data from registry sub key.
;
; hKEY , registry key pointer returned by OpenRegKey()
; ItemNAME$ , sub key item of value to write to.
; ItemType , datatype of subitem.
; newVALUE$ , new value to be written.
;
Function WriteRegSubKeyText(hKEY,ItemNAME$,ItemType,newVALUE$)
return_val_data = CreateBank(Len(newVALUE$+1))
For pokeitem = 1 To Len(newVALUE$)
PokeByte return_val_data,pokeitem-1,Asc(Mid(newVALUE$,pokeitem,1))
Next
ERROR_SUCCESS = apiRegSetValue(hKEY,ItemNAME$,0,ItemType,return_val_data,BankSize(return_val_data))
Return ERROR_SUCCESS
End Function
kev
|