[C#]
ReadRegistry.cs
[Visual Basic .NET]
ReadRegistry.vb
Option Explicit On
Module ReadRegistry
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const KEY_QUERY_VALUE = &H1
Public Const ERROR_SUCCESS = 0&
Public Const REG_SZ = 1
Public Const REG_DWORD = 4
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByVal lpType As Long, ByVal lpData As String, ByVal lpcbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
' Function to get key value
Public Function GetKeyValue(ByVal key As String, ByVal path As String, ByVal value As String) As String
Dim handle, result, lpType, bufSize As Long
Dim buf As String
Try
'Open key
result = RegOpenKey(key, path, handle)
If result <> ERROR_SUCCESS Then
GetKeyValue = ""
Exit Function
End If
'Query key
bufSize = 256
buf = Space$(bufSize)
result = RegQueryValueEx(handle, value, 0&, lpType, buf, bufSize)
If result = ERROR_SUCCESS Then
Return Left(buf, bufSize - 1)
Else
Return ""
End If
'Close key
RegCloseKey(key)
Catch ex As Exception
MsgBox(ex.ToString())
Return ""
End Try
End Function
End Module