Highlights
All Snippets
Top 100 Snippets
Librarians
gbCodeLib

By Language
VB6
JavaScript
Perl
HTML
SQL
Java
DOS

GBIC >> Source Code >> Visual Basic >> Snippet

Write registry value, any location using API


Public Enum REG_TOPLEVEL_KEYS
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_CONFIG = &H80000005
HKEY_CURRENT_USER = &H80000001
HKEY_DYN_DATA = &H80000006
HKEY_LOCAL_MACHINE = &H80000002
HKEY_PERFORMANCE_DATA = &H80000004
HKEY_USERS = &H80000003
End Enum


Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
  ( ByVal Hkey As Long , ByVal lpSubKey As String , phkResult As Long ) As Long

Private Declare Function RegCloseKey Lib "advapi32.dll" ( ByVal Hkey As Long ) As Long

Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" _
  ( ByVal Hkey As Long , ByVal lpValueName As String , ByVal _
  Reserved As Long , ByVal dwType As Long , lpData As Any, ByVal cbData As Long ) As Long

Private Const REG_SZ = 1


Private Function WriteStringToRegistry(Hkey As REG_TOPLEVEL_KEYS, SubKeyPath As String , KeyName As String , KeyValue As String ) As Boolean
'if path does not exist it will be created
'Example: WriteStringToRegistry(HKEY_LOCAL_MACHINE, "Software\Microsoft", "CustomerName", "FreeVBCode.com")

Dim bAns As Boolean
On Error Goto ErrorHandler
   Dim keyhand As Long
   Dim r As Long
  r = RegCreateKey(Hkey, strPath, keyhand)
   If r = 0 Then
       r = RegSetValueEx(keyhand, strValue, 0, _
          REG_SZ, ByVal strdata, Len(strdata))
       r = RegCloseKey(keyhand)
    End If
   
  WriteStringToRegistry = (r = 0)

Exit Function

ErrorHandler:
   WriteStringToRegistry = False
    Exit Function
   
End Function