i have two very simple functions... to load and save regkeys..
Code:
Public Function Load(ByVal Regloc As Reg_type, ByVal Keyloc As String, ByVal Keyname As String, Optional ByVal DefValue As String = "NA") As Regkeys
Dim TmpReg As New Regkeys
Dim TmpVal As String
TmpVal = DefValue
Try
Select Case Regloc
Case Reg_type.Current_Config
rk = Registry.CurrentConfig.OpenSubKey(Keyloc, False)
Case Reg_type.Current_User
rk = Registry.CurrentUser.OpenSubKey(Keyloc, False)
Case Reg_type.Local_Machine
rk = Registry.LocalMachine.OpenSubKey(Keyloc, False)
Case Reg_type.Users
rk = Registry.Users.OpenSubKey(Keyloc, False)
End Select
TmpVal = DirectCast(rk.GetValue(Keyname, DefValue), String)
Catch ex As Exception
RaiseEvent Int_Error(Error_type.Load_Err)
Finally
TmpReg.LoadReg(Regloc, Keyloc, Keyname, TmpVal)
TmpReg.Changed = True
Try
rk.Close()
Catch ex As Exception
End Try
End Try
Save(TmpReg)
Return TmpReg
End Function
Public Sub Save(ByRef RegKey As Regkeys)
If RegKey.Change Then
Try
Select Case RegKey.RegType
Case Reg_type.Current_Config
rk = Registry.CurrentConfig.CreateSubKey(RegKey.KeyLoc)
Case Reg_type.Current_User
rk = Registry.CurrentUser.CreateSubKey(RegKey.KeyLoc)
Case Reg_type.Local_Machine
rk = Registry.LocalMachine.CreateSubKey(RegKey.KeyLoc)
Case Reg_type.Users
rk = Registry.Users.CreateSubKey(RegKey.KeyLoc)
End Select
rk.SetValue(RegKey.Keyname, RegKey.KeyVal)
RegKey.Changed = False
Catch ex As Exception
RaiseEvent Int_Error(Error_type.Save_Err)
Finally
rk.Close()
End Try
End If
End Sub
these functions work fine in XP and vista, but when tested in Windows 7 .. the save reg function crashes... we assume it may be to do with Windows 7 having changed access to the reg... any ideas ???
Bookmarks