如何使用VB删除注册表中的一个键值?
vb吧
全部回复
仅看楼主
level 7
peeppp 楼主
想使用VB,删除这个值,怎么操作
2020年10月22日 06点10分 1
level 7
peeppp 楼主
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\
ScDesktop
2020年10月22日 06点10分 2
level 7
peeppp 楼主
百度到的方法都不行,求大侠帮忙给个可用的代码,谢谢
2020年10月22日 06点10分 3
level 7
peeppp 楼主
Private Declare Function SHDeleteKey Lib "shlwapi.dll" Alias "SHDeleteKeyA" (ByVal hkey As Long, ByVal pszSubKey As String) As Long
Const REG_DWORD = 4
Const HKEY_LOCAL_MACHINE = &H80000001
Private Sub Command1_Click()
Set w = CreateObject("wscript.shell")
w.regdelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", "ScDesktop"
End Sub
这个不行
2020年10月22日 07点10分 4
level 11
可以考虑使用advapi32.dll的API函数来操作注册表
例程截屏为读取新建一个键值,和删除键值类似的(我接触注册表方面的东西也不多)
//补充:怀疑你没有编译成exe后以管理员身份运行,(对键值的改变和删除需要一定的权限)
2020年10月22日 08点10分 5
涉及到的API可以在API浏览器(VB附带工具)找到,也可以在pinvoke. net找到
2020年10月22日 08点10分
能不能麻烦直接将代码贴出来我试试,谢谢
2020年10月22日 09点10分
@peeppp 我在外面...
2020年10月22日 10点10分
level 11
另外,看你这注册表的路径,你是想做一个启动管理之类的工具?
2020年10月22日 08点10分 6
封装系统,用的封装工具不能自动删除自己的启动项,我之前做了一个程序是用来做系统封装收尾工作的,想在这工具中加一个定时删除这个封装工具的启动项功能
2020年10月22日 09点10分
@peeppp RegOpenKey、RegDeleteValue、RegCloseKey
2020年10月22日 10点10分
level 11
○使用函数
RegOpenKey 获取子键句柄
RegDeleteKey 删除键值
RegCloseKey 释放子键句柄
○声明常量
HKEY_LOCAL_MACHINE 根键句柄
"SoftWare\...\Run"启动项子键路径
○利用advapi32的API函数删除启动项的基本思路
1.根据根键和子键路径获取子键句柄
2.根据键值名称和子键句柄删除键值
3.释放子键句柄
注意:删除子键必须拥有相关权限(管理员/用户组权限设置/app提取(这个我不会))
注意:如果为64位系统,但启动项在32位老路径,则需要明确指定为原键(64位系统会自动获取相对应64位的子键,这个我也不会,你可以查一下怎么操作)
2020年10月22日 10点10分 7
中间有个"app提取",我是想打"app提权",打错了
2020年10月22日 10点10分
参考这个,我也不是很懂 https://blog.csdn.net/junba118/article/details/73301745?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.edu_weight
2020年10月22日 10点10分
感谢您的热情回复,但还是不懂怎么操作的
2020年10月23日 01点10分
level 11
关于重定向的一个参考博客
2020年10月22日 11点10分 8
level 13
对于操作64位的注册表,按RegOpenKey只会去操作wow64路径下的,要操作非wow64路径下可以用RegOpenKeyEx、RegCreateKeyEx、RegSetValueEx这些Ex的函数
2020年10月23日 01点10分 9
level 6
1. 写个EXE给你不就行了
2. 这种操作,BAT都能搞到吧
2020年11月09日 14点11分 11
我想要这样的代码,因为这是做系统封装收尾工作的,之前做了一个小程序最后一步调用,想再给这个小程序加一个功能,就是清理这个启动项的,不想要再另外加载程序了
2020年11月10日 01点11分
@peeppp 那就没办法了,RUN要很大权限的,只能试试调用其它程序
2020年11月10日 09点11分
1