2011-02-11 78 views
2

我有一個應用程序,其中用戶選擇配置,我需要編寫一個函數來保存應用程序關閉時的配置,以及其他應用程序加載時加載配置,我需要使用註冊表,你可以通過給我2個小例子來幫助我如何保存和從註冊表中加載。 謝謝 Jp在vb.net保存並加載註冊表中的值

回答

6

VB中的「我的」類包含幾乎所有你需要的東西。 讀取數據:

My.Computer.Registry.LocalMachine.GetValue("mykey") 

要寫入數據:

My.Computer.Registry.LocalMachine.SetValue("mykey", "myvalue") 

希望它能幫助。

0

調查Registry Class。該類暴露的密鑰是

  • CurrentUser - 存儲有關用戶首選項的信息。
  • LocalMachine - 存儲本地機器的配置信息。
  • ClassesRoot - 存儲有關類型(和類)及其屬性的信息。
  • 用戶 - 存儲有關默認用戶配置的信息。
  • PerformanceData - 存儲軟件組件的性能信息。
  • CurrentConfig - 存儲非用戶特定的硬件信息。

瞭解使用這些密鑰很重要,因此可以爲用戶特定的實例或機器保存信息。

我不確定你使用的是什麼版本的.NET Framework。從MS

Imports Microsoft.VisualBasic 
Imports System 
Imports System.Security.Permissions 
Imports Microsoft.Win32 

Public Class RegKey 
    Shared Sub Main() 

     ' Create a subkey named Test9999 under HKEY_CURRENT_USER. 
     Dim test9999 As RegistryKey = _ 
      Registry.CurrentUser.CreateSubKey("Test9999") 

     ' Create two subkeys under HKEY_CURRENT_USER\Test9999. 
     test9999.CreateSubKey("TestName").Close() 
     Dim testSettings As RegistryKey = _ 
      test9999.CreateSubKey("TestSettings") 

     ' Create data for the TestSettings subkey. 
     testSettings.SetValue("Language", "French") 
     testSettings.SetValue("Level", "Intermediate") 
     testSettings.SetValue("ID", 123) 
     testSettings.Close() 

     ' Print the information from the Test9999 subkey. 
     Console.WriteLine("There are {0} subkeys under Test9999.", _ 
      test9999.SubKeyCount.ToString()) 
     For Each subKeyName As String In test9999.GetSubKeyNames() 
      Dim tempKey As RegistryKey = _ 
       test9999.OpenSubKey(subKeyName) 
      Console.WriteLine(vbCrLf & "There are {0} values for " & _ 
       "{1}.", tempKey.ValueCount.ToString(), tempKey.Name) 
      For Each valueName As String In tempKey.GetValueNames() 
       Console.WriteLine("{0,-8}: {1}", valueName, _ 
        tempKey.GetValue(valueName).ToString()) 
      Next 
     Next 

     ' Delete the ID value. 
     testSettings = test9999.OpenSubKey("TestSettings", True) 
     testSettings.DeleteValue("id") 

     ' Verify the deletion. 
     Console.WriteLine(CType(testSettings.GetValue(_ 
      "id", "ID not found."), String)) 
     testSettings.Close() 

     ' Delete or close the new subkey. 
     Console.Write(vbCrLf & "Delete newly created " & _ 
      "registry key? (Y/N) ") 
     If Char.ToUpper(Convert.ToChar(Console.Read())) = "Y"C Then 
      Registry.CurrentUser.DeleteSubKeyTree("Test9999") 
      Console.WriteLine(vbCrLf & "Registry key {0} deleted.", _ 
       test9999.Name) 
     Else 
      Console.WriteLine(vbCrLf & "Registry key {0} closed.", _ 
       test9999.ToString()) 
      test9999.Close() 
     End If 

    End Sub 
End Class 

樣本數據