vb.net中访问注册表变得非常的简单。我们可以用microsoft.Win32 名称空间的下的registry类和registryKey类。另外My.Computer.Registry 也可以返回一个Microsoft.Win32.Registry类的实例。
1、返回或创建一个注册表键
Dim Key1 As Microsoft.Win32.RegistryKey |
Dim Key1 As Microsoft.Win32.RegistryKey |
3、创建或读取注册表项
4、遍历注册表
Dim Key1 As Microsoft.Win32.RegistryKey 如果想创建项,必须指定第二个参数为true '输出 |
这个也非常简单,在窗体上放一个按钮和两个文本框,添加如下的代码:
Dim sb As New System.Text.StringBuilder '返回遍历结果 ByVal e As System.EventArgs) Handles Button3.Click Dim Key1 As Microsoft.Win32.RegistryKey Key1 = My.Computer.Registry.CurrentUser '返回当前用户键 If Not Key1 Is Nothing Then sb.AppendLine(Key1.Name) readValue(Key1) readReg(Key1) End If Me.TextBox1.Text = sb.ToString Me.TextBox2.Text = sb2.ToString End Sub '遍历注册表键树 Private Sub readReg()Sub readReg(ByVal r As Microsoft.Win32.RegistryKey) If r.SubKeyCount > 0 Then Dim keyName() As String Dim keyTemp As Microsoft.Win32.RegistryKey keyName = r.GetSubKeyNames Dim i As Integer For i = 0 To keyName.GetLength(0) - 1 Try sb.AppendLine(keyName(i)) keyTemp = r.OpenSubKey(keyName(i),True) readValue(keyTemp) readReg(keyTemp) Catch ex As Exception sb2.AppendLine(keyName(i)) End Try Next End If End Sub '遍历某键下的项 Private Sub readValue()Sub readValue(ByVal r As Microsoft.Win32.RegistryKey) If r.ValueCount > 0 Then Dim valueName() As String Dim i As Integer valueName = r.GetValueNames For i = 0 To valueName.GetLength(0) - 1 sb.AppendLine("####") sb.Append(r.Name) sb.Append("----") sb.Append(r.GetValue(valueName(i)).ToString) Next End If End Sub |