Atlanta Custom Software Development 

 
   Search        Code/Page
 

User Login
Email

Password

 

Forgot the Password?
Services
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
Programming
  Database
Automation
OS/Networking
Graphics
Links
Tools
» Regular Expr Tester
» Free Tools

SetRegistryValue - Write a value in the Registry
[ All Languages » VB »  Windows]

Total Hit ( 2739)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article

Rating


 


Click here to copy the following block
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" _
  (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, _
  ByVal samDesired As Long, 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

Const KEY_WRITE = &H20006 '((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or
              ' KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))
Const REG_SZ = 1
Const REG_BINARY = 3
Const REG_DWORD = 4

' Write or Create a Registry value
' returns True if successful
'
' Use KeyName = "" for the default value
'
' Value can be an integer value (REG_DWORD), a string (REG_SZ)
' or an array of binary (REG_BINARY). Raises an error otherwise.

Function SetRegistryValue(ByVal hKey As Long, ByVal KeyName As String, _
  ByVal ValueName As String, value As Variant) As Boolean
  Dim handle As Long
  Dim lngValue As Long
  Dim strValue As String
  Dim binValue() As Byte
  Dim length As Long
  Dim retVal As Long
  
  ' Open the key, exit if not found
  If RegOpenKeyEx(hKey, KeyName, 0, KEY_WRITE, handle) Then
    Exit Function
  End If

  ' three cases, according to the data type in Value  
  Select Case VarType(value)
    Case vbInteger, vbLong
      lngValue = value
      retVal = RegSetValueEx(handle, ValueName, 0, REG_DWORD, lngValue, 4)
    Case vbString
      strValue = value
      retVal = RegSetValueEx(handle, ValueName, 0, REG_SZ, ByVal strValue, _
        Len(strValue))
    Case vbArray + vbByte
      binValue = value
      length = UBound(binValue) - LBound(binValue) + 1
      retVal = RegSetValueEx(handle, ValueName, 0, REG_BINARY, _
        binValue(LBound(binValue)), length)
    Case Else
      RegCloseKey handle
      Err.Raise 1001, , "Unsupported value type"
  End Select
  
  ' Close the key and signal success
  RegCloseKey handle
  ' signal success if the value was written correctly
  SetRegistryValue = (retVal = 0)
End Function


Submitted By : Nayan Patel  (Member Since : 5/26/2004 12:23:06 PM)

Job Description : He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting.
View all (893) submissions by this author  (Birth Date : 7/14/1981 )


Home   |  Comment   |  Contact Us   |  Privacy Policy   |  Terms & Conditions   |  BlogsZappySys

© 2008 BinaryWorld LLC. All rights reserved.