Public Class CMyRegistry
Enum KeyName
HKEY_CLASSES_ROOT = &H80000000
HKEY_CURRENT_USER = &H80000001
HKEY_LOCAL_MACHINE = &H80000002
HKEY_USERS = &H80000003
HKEY_CURRENT_CONFIG = &H80000004
End Enum
Public Function GetValue(ByVal sRegistrykey As String, Optional ByVal sDefaultValue As String = "", Optional ByVal key As KeyName = KeyName.HKEY_LOCAL_MACHINE) As String
Dim sKey, sValue As String
sKey = IO.Path.GetDirectoryName(sRegistrykey)
sValue = IO.Path.GetFileName(sRegistrykey)
Dim Reg As RegistryKey '获取请求的注册表值
Dim objValue As Object
If key = KeyName.HKEY_CLASSES_ROOT Then
Reg = Registry.ClassesRoot.CreateSubKey(sKey) '创建一个新子项或打开一个现有子项
ElseIf key = KeyName.HKEY_CURRENT_USER Then
Reg = Registry.CurrentUser.CreateSubKey(sKey) '创建一个新子项或打开一个现有子项
ElseIf key = KeyName.HKEY_LOCAL_MACHINE Then
Reg = Registry.LocalMachine.CreateSubKey(sKey) '创建一个新子项或打开一个现有子项
ElseIf key = KeyName.HKEY_USERS Then
Reg = Registry.Users.CreateSubKey(sKey) '创建一个新子项或打开一个现有子项
ElseIf key = KeyName.HKEY_CURRENT_CONFIG Then
Reg = Registry.CurrentConfig.CreateSubKey(sKey) '创建一个新子项或打开一个现有子项
End If
If Reg Is Nothing Then
GetValue = ""
Exit Function
End If
objValue = Reg.GetValue(sValue)
If objValue Is Nothing Then
GetValue = sDefaultValue
Else
GetValue = objValue.ToString '获取请求的值
End If
Reg.Close() '关闭该项
End Function
Public Function CreateSubKey(ByVal sKey As String, Optional ByVal key As KeyName = KeyName.HKEY_LOCAL_MACHINE) As Boolean
Dim Reg As RegistryKey '获取请求的注册表值
Dim objValue As Object
If key = KeyName.HKEY_CLASSES_ROOT Then
Reg = Registry.ClassesRoot.CreateSubKey(sKey) '创建一个新子项或打开一个现有子项
ElseIf key = KeyName.HKEY_CURRENT_USER Then
Reg = Registry.CurrentUser.CreateSubKey(sKey) '创建一个新子项或打开一个现有子项
ElseIf key = KeyName.HKEY_LOCAL_MACHINE Then
Reg = Registry.LocalMachine.CreateSubKey(sKey) '创建一个新子项或打开一个现有子项
ElseIf key = KeyName.HKEY_USERS Then
Reg = Registry.Users.CreateSubKey(sKey) '创建一个新子项或打开一个现有子项
ElseIf key = KeyName.HKEY_CURRENT_CONFIG Then
Reg = Registry.CurrentConfig.CreateSubKey(sKey) '创建一个新子项或打开一个现有子项
End If
CreateSubKey = Not (Reg Is Nothing)
End Function
Public Function SetValue(ByVal sKey As String, ByVal value As Object, Optional ByVal key As KeyName = KeyName.HKEY_LOCAL_MACHINE) As Boolean
Dim Reg As RegistryKey '获取请求的注册表值
Dim objValue As Object
Dim sEntry As String
sEntry = IO.Path.GetFileName(sKey)
sKey = IO.Path.GetDirectoryName(sKey)
If key = KeyName.HKEY_CLASSES_ROOT Then
Reg = Registry.ClassesRoot.CreateSubKey(sKey) '创建一个新子项或打开一个现有子项
ElseIf key = KeyName.HKEY_CURRENT_USER Then
Reg = Registry.CurrentUser.CreateSubKey(sKey) '创建一个新子项或打开一个现有子项
ElseIf key = KeyName.HKEY_LOCAL_MACHINE Then
Reg = Registry.LocalMachine.CreateSubKey(sKey) '创建一个新子项或打开一个现有子项
ElseIf key = KeyName.HKEY_USERS Then
Reg = Registry.Users.CreateSubKey(sKey) '创建一个新子项或打开一个现有子项
ElseIf key = KeyName.HKEY_CURRENT_CONFIG Then
Reg = Registry.CurrentConfig.CreateSubKey(sKey) '创建一个新子项或打开一个现有子项
End If
If Reg Is Nothing Then
SetValue = False
Else
Reg.SetValue(sEntry, value)
SetValue = True
End If
End Function