积极答复者
如何判断注册表中是否存在某个项?

问题
答案
全部回复
-
Public Class Form1 Private regedit As Microsoft.Win32.RegistryKey Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load regedit = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True) Dim regkeys() As String regkeys = regedit.GetValueNames For Each Item As String In regkeys If Item = "我的程序" Then MsgBox("该启动项存在") Next End Sub End Class
我是这样判断的,不知道是不是适合你。 -
Public Class Form1 Private regedit As Microsoft.Win32.RegistryKey Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load regedit = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True) Dim regkeys() As String regkeys = regedit.GetValueNames For Each Item As String In regkeys If Item = "我的程序" Then MsgBox("该启动项存在") Next End Sub End Class
谢谢,不过我要判断的是注册表项,而不是具体的键值,所以用这个方法不行.
在上例里,比如"Software\Microsoft\Windows\CurrentVersion\Run"下,我想判断还有没有别的项,而不是键值. -
For Each Item As String In regkeys
'If Item = "我的程序" Then MsgBox("该启动项存在")
'就是项的名称,并不是键值呀
ComboBox1.Items.Add(Item)
Next
嗯,刚才看错了,这个方法可行.
不过我用的是下面的方法:
regedit = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run\TEST")
if regedit is nothing then
msgbox("该项不存在!")
end if
OpenSubKey在找不到子项的时候居然不会报错,这样就可以用 is nothing来判断了,嘿嘿