SetRegistryValue – Write a value in the Registry

SetRegistryValue – Write a value in the Registry

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 LongPrivate Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As _    LongPrivate 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 LongConst KEY_WRITE = &H20006  '((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or                            ' KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))Const REG_SZ = 1Const REG_BINARY = 3Const 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

Share the Post:
Heading photo, Metadata.

What is Metadata?

What is metadata? Well, It’s an odd concept to wrap your head around. Metadata is essentially the secondary layer of data that tracks details about the “regular” data. The regular

XDR solutions

The Benefits of Using XDR Solutions

Cybercriminals constantly adapt their strategies, developing newer, more powerful, and intelligent ways to attack your network. Since security professionals must innovate as well, more conventional endpoint detection solutions have evolved

AI is revolutionizing fraud detection

How AI is Revolutionizing Fraud Detection

Artificial intelligence – commonly known as AI – means a form of technology with multiple uses. As a result, it has become extremely valuable to a number of businesses across

AI innovation

Companies Leading AI Innovation in 2023

Artificial intelligence (AI) has been transforming industries and revolutionizing business operations. AI’s potential to enhance efficiency and productivity has become crucial to many businesses. As we move into 2023, several