当前位置:首页 > 编程学习 > VB.NET中快速访问注册表技巧

VB.NET中快速访问注册表技巧

编程学习2007-04-2952870

vb.net中访问注册表变得非常的简单。我们可以用 microsoft.Win32 名称空间的 下的 registry 类 和  registryKey 类。 另外 My.Computer.Registry 也可以返回一个 Microsoft.Win32.Registry 类的实例。
下面就举几个小例子来说明vb.net访问注册表的方法。


1,返回或创建一个注册表键

Dim Key1 As Microsoft.Win32.RegistryKey 
Key1 = My.Computer.Registry.CurrentUser '返回当前用户键 
Dim Key2 As Microsoft.Win32.RegistryKey 
Key2 = Key1.OpenSubKey("northsnow") '返回当前用户键下的northsnow键 
If Key2 Is Nothing Then
    Key2 = Key1.CreateSubKey("northsnow") '如果键不存在就创建它 
End If

2,删除注册表键

Dim Key1 As Microsoft.Win32.RegistryKey 
Key1 = My.Computer.Registry.CurrentUser '返回当前用户键 
Dim Key2 As Microsoft.Win32.RegistryKey
Key2 = Key1.OpenSubKey("northsnow") '返回当前用户键下的northsnow键 
If Not Key2 Is Nothing Then
    Key1.DeleteSubKey("northsnow") '如果键不存在就创建它 
End If

3,创建或读取注册表项

Dim Key1 As Microsoft.Win32.RegistryKey 
Key1 = My.Computer.Registry.CurrentUser '返回当前用户键 
Dim Key2 As Microsoft.Win32.RegistryKey 
Key2 = Key1.OpenSubKey("northsnow", True) '返回当前用户键下的northsnow键,如果想创建项,必须指定第二个参数为true 
If Key2 Is Nothing Then
    Key2 = Key1.CreateSubKey("northsnow") '如果键不存在就创建它 
End If
         
'创建项,如果不存在就创建,如果存在则覆盖 
Key2.SetValue("name", "塞北的雪") 
Key2.SetValue("sex", True) 
Key2.SetValue("age", 30)
         
'返回项值 
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)
         
'查验某个项是否存在 
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


4,遍历注册表

这个也非常简单,在窗体上放一个按钮和两个文本框,添加如下的代码

Dim sb As New System.Text.StringBuilder '返回遍历结果 
Dim sb2 As New System.Text.StringBuilder '返回读取出错的注册表键 
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 '返回当前用户键 
    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



扫描二维码推送至手机访问。

版权声明:本文由海阔天空发布,如需转载请注明出处。

本文链接:https://www.apull.net/html/20070429102.html

分享给朋友:

相关文章

关于学习编程和C语言

关于学习编程和C语言

关于学习编程和C语言  转自 开复网 Q:该怎么学习编程?  A:首先问你一个问题:你们在学校都学些什么课程? 问这个问题的原因是,我认为学校的计算机科学基础课很重要。如果你所在学校的课程设置合理,那你应该先把主要精力花在这些基础课上。很多学生看到基础理论就茫然,不知道这些图表,符号,甚至硬件的知识对将来的软件开发有什么用。用处大得很哪。比如,操作系统课里讲到的多线程的东西在系统编程里很有用。又比如,尽管你将来不会去涉及电脑的...

 C++中指针的使用艺术

C++中指针的使用艺术

C++中指针的使用艺术 在C++编程中使用指针能有速度快,节约内存等优点,是很多C++程序员的最爱。但指针是一把双刃剑,用好了它,你就会发现指针有多么的方便,反之,你可能就头疼了,往往会出现意想不到的问题。   一.什么是指针:   其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针只是一个指示器,它告诉程序在内存的哪块区域可以找到数据。   这是一个非常重要的概念,有很多程序和算法都是围绕指针设计的,如链...

常用asp函数

常用asp函数

<% '------------------------------------- '所有功能函数名如下: ' StrLength(str) 取得字符串长度 ' CutStr(str,strlen) 字符串长度切割 ' CheckIsEmpty(tstr) 检测是否为空 ' isInteger(para) 整数检验 ' CheckName(str) 名字字符校验 ' CheckPassword(str) 密码检验 ' CheckEmail(emai...

计算机蓝屏代码的含义

计算机蓝屏代码的含义

0 0x0000 作业完成。1 0x0001 不正确的函数。2 0x0002 系统找不到指定的档案。3 0x0003 系统找不到指定的路径。4 0x0004 系统无法开启档案。5 0x0005 拒绝存取。6 0x0006 无效的代码。7 0x0007 储存体控制区块已毁。8 0x0008 储存体空间不足,无法处理这个指令。9 0x0009 储存体控制区块地址无效。10 0x000A 环境不正确。11 0x000B 尝试加载一个格式错误的程序。12 0x000C 存取码错误。1...