我要删除一个项,及其子项,在知道其子项名称时。我可以删除了他们。我可以先删除子项里的字符串,再删除子项,再删除项。如,有一个项ABC其子项是DEF,里面的字符串是"启动.exe"。那我可以先删除"启动.exe"。再删除DEF,再删除ABC。我要如何才能做到。只要删除ABC就可以整个删除ABCT和 DEF和"启动.exe"。而不用一个一个删除呢。我用的是下面的方法Private Sub Form_Load()Set Reg = CreateObject("Wscript.shell")
Reg.RegDelete("HKEY_LOCAL_MACHINE, "SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN\ABC\DEF\启动.exe")
RegDeleteKey"HKEY_LOCAL_MACHINE, "SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN\ABC\DEF"
RegDeleteKey"HKEY_LOCAL_MACHINE, "SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN\ABC\"
Set Reg = Nothing
End Sub
Reg.RegDelete是删除字符串用的就是删除我这里的。启动.exe
RegDeleteKey是删除项目的。用这个就不能删除字符串了。
我应该用什么方法叉可以实现只要删除ABC就行了。高手帮忙
Reg.RegDelete("HKEY_LOCAL_MACHINE, "SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN\ABC\DEF\启动.exe")
RegDeleteKey"HKEY_LOCAL_MACHINE, "SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN\ABC\DEF"
RegDeleteKey"HKEY_LOCAL_MACHINE, "SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN\ABC\"
Set Reg = Nothing
End Sub
Reg.RegDelete是删除字符串用的就是删除我这里的。启动.exe
RegDeleteKey是删除项目的。用这个就不能删除字符串了。
我应该用什么方法叉可以实现只要删除ABC就行了。高手帮忙
解决方案 »
- 截取函数
- 如何做一个Access导入Excel数据一样的向导?
- 求助:关于数据库查询的问题(解决速度是主要问题)
- DATAGRID“显示”的数据导出到EXCEL
- 水晶报表9.2简体中文版,里面有注册码,需要的同志赶快下载了.!!!!!!!
- 关于DATAGRID控件的一个问题
- 使用ADO创建 Northwind 的OLE DB 数据链接问题之在哪里?2,急救车来吧
- 如何用错误陷井?
- 我刚下载安装了CrystalReport8.5,想不到在用Package & Deployment 向导制作安装程序时就出错了,救救我啊
- 简单的问题,如何判断注册表中的某一项是否存在???????????????
- 求会CorelDraw的VBA编程的朋友
- vB和access数据库连接的问题
RegDeleteKey——删除Key或者SubKeyRegDeleteKeyEx():同RegDeleteKeyEx()
Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long 参数: hKey:Key Handle lpSubKey:SubKey名称或者路径,若传入""[空字符串],表示删除Key本身。 返回值: =0,表示成功;≠0,表示失败。 示例Dim hKey,ret As Long
ret = RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\Hongqt\xiaoyuer", hKey)
ret = RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\Hongqt", hKey)
ret = RegDeleteKey(hKey, "xiaoyuer")'删除HKEY_LOCAL_MACHINE\SOFTWARE\Hongqt\xiaoyuer 注意: 如果我们利用RegDeleteKey函数删除一个含有SubKey的Key时,对于Windows98和Winnt来讲是不一样的。比如我们把上面的删除调用改成ret = RegDeleteKey(hKey, ""),则在windows98下,它会连hongqt下的xiaoyuer一起删除,而在winnt下则会报错。
如果不行则要用:
RegEnumKey——列出某Key的所有SubKey RegEnumKeyEx():返回注册表键及其子键的详细信息。Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, ByVal cbName As Long) As Long 参数说明: hKey:Key Handle dwIndex:欲读取的SubKey的顺序 lpName:返回所读取的SubKey的名称 cbName:传入lpName的字符串长度。 返回值: =0,表示成功;≠0,表示失败。 示例:Dim hKey As Long, ret As Long, Name As String, Idx As Long
List1.Clear
Idx = 0
Name = String(256, Chr(0))
Do
ret = RegEnumKey(HKEY_CURRENT_USER, Idx, Name, Len(Name))
If ret = 0 Then
List1.AddItem Left(Name, InStr(Name, Chr(0)) - 1)
Idx = Idx + 1
End If
Loop Until ret <> 0 RegDeleteValue——删除某Key的某一名称
Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long 参数: hKey:Key Handle lpValueName: Value名称,如果想删除默认值的话,传入""[空字符串]即可。 返回值: =0,表示成功;≠0,表示失败。 示例: '我们假设在HKEY_CURRENT_USER\Software\SetValue有:
'预设值——VB操作注册表
'str1——我爱我的祖国
'我们要删除这两个Value
ret = RegOpenKey(HKEY_CURRENT_USER, "Software\SetValue", hKey)
If ret = 0 Then
RegDeleteValue hKey, "Str1"
MsgBox "已删除HKCU\Software\SetValueSubKeyStr1Value"
RegDeleteValue hKey, ""
MsgBox "已删除HKCU\Software\SetValueSubKey‘预设值’"
End If 最后调RegDeleteKey