hi all
heres a little registry lib to use, i coded this sometime back. hope its usefull
.decls
and a example
kev
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