vb.net中訪問(wèn)注冊(cè)表變得非常的簡(jiǎn)單。我們可以用microsoft.Win32 名稱空間的下的registry類和registryKey類。另外My.Computer.Registry 也可以返回一個(gè)Microsoft.Win32.Registry類的實(shí)例。
下面就舉幾個(gè)小例子來(lái)說(shuō)明vb.net訪問(wèn)注冊(cè)表的方法。
1、返回或創(chuàng)建一個(gè)注冊(cè)表鍵
Dim Key1 As Microsoft.Win32.RegistryKey Key1 = My.Computer.Registry.CurrentUser '返回當(dāng)前用戶鍵 Dim Key2 As Microsoft.Win32.RegistryKey Key2 = Key1.OpenSubKey("northsnow") '返回當(dāng)前用戶鍵下的northsnow鍵 If Key2 Is Nothing Then Key2 = Key1.CreateSubKey("northsnow") '如果鍵不存在就創(chuàng)建它 End If |
2、刪除注冊(cè)表鍵
Dim Key1 As Microsoft.Win32.RegistryKey Key1 = My.Computer.Registry.CurrentUser '返回當(dāng)前用戶鍵 Dim Key2 As Microsoft.Win32.RegistryKey Key2 = Key1.OpenSubKey("northsnow") '返回當(dāng)前用戶鍵下的northsnow鍵 If Not Key2 Is Nothing Then Key1.DeleteSubKey("northsnow") '如果鍵不存在就創(chuàng)建它 End If |
3、創(chuàng)建或讀取注冊(cè)表項(xiàng)
Dim Key1 As Microsoft.Win32.RegistryKey Key1 = My.Computer.Registry.CurrentUser '返回當(dāng)前用戶鍵 Dim Key2 As Microsoft.Win32.RegistryKey Key2 = Key1.OpenSubKey("northsnow", True) '返回當(dāng)前用戶鍵下的northsnow鍵, 如果想創(chuàng)建項(xiàng),必須指定第二個(gè)參數(shù)為true If Key2 Is Nothing Then Key2 = Key1.CreateSubKey("northsnow") '如果鍵不存在就創(chuàng)建它 End If '創(chuàng)建項(xiàng),如果不存在就創(chuàng)建,如果存在則覆蓋 Key2.SetValue("name", "塞北的雪") Key2.SetValue("sex", True) Key2.SetValue("age", 30) '返回項(xiàng)值 Dim sb As New System.Text.StringBuilder sb.AppendLine(Key2.GetValue("name")) sb.AppendLine(Key2.GetValue("sex")) sb.AppendLine(Key2.GetValue("age")) MsgBox(sb.ToString) '查驗(yàn)?zāi)硞€(gè)項(xiàng)是否存在 If (Key2.GetValue("name")) Is Nothing Then MsgBox("no") Else MsgBox("yes") End If If (Key2.GetValue("name2")) Is Nothing Then MsgBox("no") Else MsgBox("yes") End If '輸出 ' 塞北的雪 'True '30 'yes 'no |
Dim sb As New System.Text.StringBuilder '返回遍歷結(jié)果 Dim sb2 As New System.Text.StringBuilder '返回讀取出錯(cuò)的注冊(cè)表鍵 Private Sub Button3_Click()Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim Key1 As Microsoft.Win32.RegistryKey Key1 = My.Computer.Registry.CurrentUser '返回當(dāng)前用戶鍵 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 '遍歷注冊(cè)表鍵樹 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 '遍歷某鍵下的項(xiàng) 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 |
新聞熱點(diǎn)
疑難解答