注册表
vs.net提供了microsoft.win32类,下面有三个子类,全是针对注册表的,Microsoft.Win32.RegistryKey、Microsoft.Win32.Registry、Microsoft.Win32.RegistryHive
Microsoft.Win32.Registry提供了访问各个注册表中根的值
Microsoft.Win32.Registry.CurrentUser '为HKEY_CURRENT_USER根键
Microsoft.Win32.Registry.ClassesRoot '为HKEY_CLASSES_ROOT根键
Microsoft.Win32.Registry.CurrentConfig '为HKEY_CURRENT_CONFIG根键
Microsoft.Win32.Registry.Users '为HKEY_USERS根键
Microsoft.Win32.Registry.DynDa '对应于HKEY_DYN_DATA主键
Microsoft.Win32.Registry.PerformanceData '对应于HKEY_PERFORMANCE_DATA主键
Microsoft.Win32.Registry.LocalMachine '为HKEY_LOCAL_MACHINE根键
了解了这么多,让我们来对注册表进行操作吧!举个小例子:
Dim key As Microsoft.Win32.RegistryKey, subkey As Microsoft.Win32.RegistryKey
key = Microsoft.Win32.Registry.CurrentUser 'key为HKEY_USERS根键
subkey = key.CreateSubKey("Software\vb.net") '在HKEY_USERS\software下创建一个vb.net子键
subkey.SetValue("GOOD?", "of course") '在HKEY_USERS\software\vb.net下设置一个键值,键值名为good?,值为of course了
上面是在注册表里创建键了,下面我们用程序来访问我们刚创建的注册表的键吧:
key = microsoft.Win32.Registry.CurrentUser '如上
subkey=key.OpenSubKey("software\vb.net",True) 'subkey即为HKEY_USERS\software\vb.net键
dim value as object=subkey.GetValue("Good?") 'value为HKEY_USERS\software\vb.net键中的GOOD?的值
msgbox(value.tostring()) '将出现of course了
上面是获取注册表键值了,要设值,还是用subkey.setvalue了
来讲讲删除吧:
key.DeleteSubKey("software\vb.net") '删除这个键了也可以用:
key.DeleteSubKeyTree("software\vb.net")
还可以用key.GetSubKeyNames来遍历子键
即:for i=0 to ubound(key.GetSubKeyNames())
subkey=key.OpenSubKey(key.GetSubKeyNames()(i),True)
....... '对每个子键的处理
next
用key.GetValueNames来遍历各个值
即:
for i=0 to ubound(key.GetValueNames())
key.GetValueNames()(i) '为每个值的名称
value=key.Getvalue(key.GetValueNames()(i)) '为每个值的值
讲到这儿,对注册表的各项操作也差不多了吧!如果结合起来用,什么都可以干了呀,呵呵!