Public Class Registry
Public Shared Function RegValue(ByVal Hive As RegistryHive, _
ByVal Key As String, _
ByVal ValueName As String, _
Optional ByRef ErrInfo As String = "") As String
Dim objParent As RegistryKey
Dim objSubkey As RegistryKey
Dim sAns As String = ""
Select Case Hive
Case RegistryHive.ClassesRoot
objParent = Microsoft.Win32.Registry.ClassesRoot
Case RegistryHive.CurrentConfig
objParent = Microsoft.Win32.Registry.CurrentConfig
Case RegistryHive.CurrentUser
objParent = Microsoft.Win32.Registry.CurrentUser
Case RegistryHive.DynData
objParent = Microsoft.Win32.Registry.DynData
Case RegistryHive.LocalMachine
objParent = Microsoft.Win32.Registry.LocalMachine
Case RegistryHive.PerformanceData
objParent = Microsoft.Win32.Registry.PerformanceData
Case RegistryHive.Users
objParent = Microsoft.Win32.Registry.Users
End Select
Try
objSubkey = objParent.OpenSubKey(Key)
'if can't be found, object is not initialized
If Not objSubkey Is Nothing Then
sAns = CType((objSubkey.GetValue(ValueName)), String)
End If
Catch ex As System.Exception
ErrInfo = ex.Message
Finally
'if no error but value is empty, populate errinfo
If ErrInfo = "" And sAns = "" Then
ErrInfo = _
"No value found for requested registry key"
End If
End Try
Return sAns
End Function
Public Shared Function GetSecurityID() As String
Dim Id As System.Security.Principal.WindowsIdentity = System.Security.Principal.WindowsIdentity.GetCurrent()
Dim SecurityID As String = Id.User.AccountDomainSid.ToString()
Return Id.User.Value
End Function
End Class