您好,登录后才能下订单哦!
这篇“怎么用VB.NET操作注册表”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用VB.NET操作注册表”文章吧。
Windows系统将计算机全部配置信息和各应用程序信息容纳在“注册表”数据库中,用它来管理应用程序和关联文件、硬件设备说明、状态属性以及各种状态信息和数据等。注册表由“我的电脑”分出几个根键蜂箱分支(根键名前缀为HKEY_,H由蜂箱Hive而来),都有哪类根键是由安装的操作系统来决定的。
1、注册表常见的根键分支有:
HKEY_CLASSES_ROOT当前已在计算机上注册的所有COM服务器和与应用程序相关联的所有文件扩展名。
HKEY_CURRENT_CONFIG当前计算机的所有硬件配置信息。
HKEY_CURRENT_USER登录到当前计算机上的用户配置文件,其子项包含着环境变量、个人程序组、桌面设置、网络连接、打印机和应用程序首选项。
HKEY_LOCAL_MACHINE包含了操作系统及硬件相关信息的配置,为公共配置信息,与具体用户无关。
HKKEY_USERS当前计算机上所有的用户的缺省配置信息。
HKEY_DYN_DATA 用于Windows95,98,Me,包含硬件的当前状态,也包含了那些需要更新和检索的数据。
另外有的系统还有 HKEY_PERFORMANCE_DATA,HKEY_PERFORMANCE_TEXT,HKEY_PERFORMANCE_NLSTEXT 根键。
2、VB.Net可以通过使用API函数(不推荐)、My.Computer.Registry 命名空间、VB注册表原始程序方法来操作注册表。
(1)VB注册表原始程序方法只要有普通用户的权限就能够执行,但这些方法只能对如下默认路径范围的注册表进行操作:HKEY_CURRENT_USER\\Software\\VBandVBAProgramSettingsRegistry。这些方法有:
SaveSetting(程序名,节名,键名,键值) 用此方法创建一个键,如果创建的键路径中没有VBandVBAProgramSettingsRegistry 子项,会自动创建这个子项,然后再添加相应键。
GetSetting(程序名,节名,键名[,默认键值]) 返回注册表键的值(如果没有键值则返回默认键值)
GetAllSettings(程序名,节名) 返回该节的所有注册表键值对数组(数组一维代表节,二维代表键,如果是0代表键名,1代表键值)
DeleteSetting(程序名[,节名]) 删除该程序或节的所有注册表键。
举例:
Dim rg(,) As String=GetAllSettings("我的程序","数据目录") For i As Integer = 0 To rg.GetUpperBound(0) TextBox1.Text &= rg(i,0) & "=" & rg(i,1) Next
(2)My.Computer.Registry命名空间有七个RegistryKey实例对象,对应注册表的七个相应根键:
.ClassesRoot---HKEY_CLASSES_ROOT
.CurrentConfig---HKEY_CURRENT_CONFIG
.CurrentUser---HKEY_CURRENT_USER
.LocalMachine---HKEY_LOCAL_MACHINE
.Users---HKKEY_USERS
.DynData---HKEY_DYN_DATA
.PerformanceData---HKEY_PERFORMANCE_DATA
对以上RegistryKey对象(除了HKEY_CURRENT_USER)的注册表操作可能需要特定的用户权限。使用RegistryKey类前必须先引入Microsoft.Win32命名空间。
(3)RegistryKey 的最常用属性和方法:
Name 返回键的路径
ToString 返回键名
Close 关闭键(如果修改过,保存后再关闭)
CreateSubKey 创建一个子项或打开一个现有子项以进行写访问
DeleteSubKey 删除指定的子项。当该子项还含有子项时,不能被删除
DeleteSubKeyTree 删除一个子项以及它的所有下层子项
DeleteValue 删除该键的值
Flush 把对该键的任何更改立即写入注册表
GetSubKeyNames 返回所有子项名称的字符串数组
GetValue 返回指定名称的值(可以设置一个不存在该名称时的默认返回值)
GetValueKind 返回某个键内指定值的RegistryValueKind类型,可能是:Binary,DWord,ExpandString,MultiString,QWord,String,Unknown
GetValueNames 返回所有与此键关联的值名称的字符串数组
OpenSubKey 返回一个子项的RegistryKey对象(可以指定是否可写入)
SetValue 创建或修改指定的键值对
SubKeyCount 返回当前项的直接子项数目
ValueCount 返回存储在该键内的值数目
举例:
Imports Microsoft.Win32 Public Class Form1 Private Sub Button1_Click(sender As Object,e As EventArgs) Handles Button1.Click Dim reg As RegistryKey=My.Computer.Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\un",True) If reg.GetValue("test") IsNot Nothing Then If MessageBox.Show("该键已经存在,需要删除吗?","提示",MessageBoxButtons.YesNo)=DialogResult.Yes Then reg.DeleteValue("test",True) MessageBox.Show("删除成功!") End If Else reg.SetValue("test",567) MessageBox.Show("设置成功!") End If reg.Close() reg=Nothing End Sub End Class
以上就是关于“怎么用VB.NET操作注册表”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。