设为首页 友情链接
在线留言 发表文章
加入收藏 广告联系

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
小说专版  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专   题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: IT公社 IT community >> 网络编程 >> VB.NET >> 教程正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
VB6.0初学者的10个编程小…
用VBScript自制IE工具栏…
CSS+VBScript制作的酷酷…
vb.net常用函数
用ASP、VB和XML建立互联…
使用ASP、VB和XML建立运…
VB.NET编程调用迅雷下载…
VB.NET中使用ListView控…
VB.Net中的操作符应用实…
VB.Net中应用ArrayList实…
  VB.NET中快速访问注册表技巧         ★★★★★
VB.NET中快速访问注册表技巧
 

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

'遍历某键下的项

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

(责任编辑 火凤凰 sunsj@51cto.com  TEL:(010)68476636-8007)



频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。

原始作者:佚名 录入时间:2007-1-7 17:59:28
信息来源:不详 投稿信箱:itqoo@126.com
教程录入:itqoo    责任编辑:itqoo 
  • 上一个教程:

  • 下一个教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    - 关于我们 - 合作伙伴 - 友情链接 - 广告刊登 - 投稿热线 - 在线留言版权声明联系方式 -
    IT公社版权所有 粤ICP备05127012号
    Copyrigh@2005-2006 itqoo.com.Inc All Rights Reserved  推荐分辨率 1024*768
    联系站长:E-Mail:itqoo@126.com     MSN:urchincc@hotmail.com    QQ:点击这里给我发消息
    特别感谢:亿太网络提供空间支持