Mega Code Archive

 
Categories / VisualBasic Script / Windows API
 

Reads a value from the Windows Registry

Private Declare Function RegOpenKeyA Lib "ADVAPI32.DLL" (ByVal hKey As Long, ByVal sSubKey As String, ByRef hkeyResult As Long) As Long Private Declare Function RegCloseKey Lib "ADVAPI32.DLL" (ByVal hKey As Long) As Long Private Declare Function RegSetValueExA Lib "ADVAPI32.DLL" (ByVal hKey As Long, ByVal sValueName As String, ByVal dwReserved As Long, ByVal dwType As Long, ByVal sValue As String, ByVal dwSize As Long) As Long Private Declare Function RegCreateKeyA Lib "ADVAPI32.DLL" (ByVal hKey As Long, ByVal sSubKey As String, ByRef hkeyResult As Long) As Long Private Declare Function RegQueryValueExA Lib "ADVAPI32.DLL" (ByVal hKey As Long, ByVal sValueName As String, ByVal dwReserved As Long, ByRef lValueType As Long, ByVal sValue As String, ByRef lResultLen As Long) As Long Function GetRegistry(Key, Path, ByVal ValueName As String)     Dim hKey As Long     Dim lValueType As Long     Dim sResult As String     Dim lResultLen As Long     Dim ResultLen As Long     Dim x, TheKey As Long     Select Case UCase(Key)         Case "HKEY_CLASSES_ROOT": TheKey = &H80000000         Case "HKEY_CURRENT_USER": TheKey = &H80000001         Case "HKEY_LOCAL_MACHINE": TheKey = &H80000002         Case "HKEY_USERS": TheKey = &H80000003         Case "HKEY_CURRENT_CONFIG": TheKey = &H80000004         Case "HKEY_DYN_DATA": TheKey = &H80000005     End Select          If RegOpenKeyA(TheKey, Path, hKey) <> 0 Then _         x = RegCreateKeyA(TheKey, Path, hKey)          sResult = Space(100)     lResultLen = 100          x = RegQueryValueExA(hKey, ValueName, 0, lValueType, _     sResult, lResultLen)              Select Case x         Case 0: GetRegistry = Left(sResult, lResultLen - 1)         Case Else: GetRegistry = "Not Found"     End Select          RegCloseKey hKey End Function Sub TestIt()     RootKey = "hkey_current_user"     Path = "software\microsoft\office\9.0\common\autocorrect"     RegEntry = "path"     MsgBox GetRegistry(RootKey, Path, RegEntry), vbInformation, _         Path & "\RegEntry" End Sub