實(shí)例講解VB.NET訪問(wèn)注冊(cè)表
在向大家詳細(xì)介紹VB.NET訪問(wèn)注冊(cè)表之前,首先讓大家了解下registry類(lèi)和registryKey類(lèi),然后全面介紹VB.NET訪問(wèn)注冊(cè)表。
VB.NET訪問(wèn)注冊(cè)表非常的簡(jiǎn)單。我們可以用microsoft.Win32 名稱(chēng)空間的下的registry類(lèi)和registryKey類(lèi)。另外My.Computer.Registry 也可以返回一個(gè)Microsoft.Win32.Registry類(lèi)的實(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)前用戶(hù)鍵
- Dim Key2 As Microsoft.Win32.RegistryKey
- Key2 = Key1.OpenSubKey("northsnow") '返回當(dāng)前用戶(hù)鍵下的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)前用戶(hù)鍵
- Dim Key2 As Microsoft.Win32.RegistryKey
- Key2 = Key1.OpenSubKey("northsnow") '返回當(dāng)前用戶(hù)鍵下的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)前用戶(hù)鍵
- Dim Key2 As Microsoft.Win32.RegistryKey
- Key2 = Key1.OpenSubKey("northsnow", True) '返回當(dāng)前用戶(hù)鍵下的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
4.遍歷注冊(cè)表
- 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)前用戶(hù)鍵
- 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è)表鍵樹(shù)
- 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
以上介紹VB.NET訪問(wèn)注冊(cè)表。
【編輯推薦】