注册表问题,真的没有人会吗?

foxmsdn 2001-07-21 11:13:16
原问题在http://www.csdn.net/expert/topic/165/165087.shtm,提问一个月了,还是没有人正确的回答,真的那么难吗?
问题如下:
如何修改注册表中一个子键的名字?记住,是子键的名字,不是值的名称。像regedit中重命名的功能一样。如果是最后一层子键当然容易,如果它有下一层子键呢?下一层子键还有下一层呢?

...全文
116 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shane 2001-09-06
  • 打赏
  • 举报
回复
这是微软的原模块,可能对你有用
' Õâ¸öÄ£¿éÓÃÓÚ¶ÁºÍдע²á±í¹Ø¼ü×Ö¡£
' ²»Í¬ÓÚVB µÄÄÚ²¿×¢²á±í·ÃÎÊ·½·¨£¬Ëü¿ÉÒÔ
' ͨ¹ý×Ö·û´®µÄÖµÀ´¶ÁºÍдÈκÎ×¢²á±í¹Ø¼ü×Ö¡£


Option Explicit
'---------------------------------------------------------------
'-×¢²á±í API ÉùÃ÷...
'---------------------------------------------------------------
Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
Private Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Long, ByRef lpdwDisposition As Long) As Long
Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long

'---------------------------------------------------------------
'- ×¢²á±í Api ³£Êý...
'---------------------------------------------------------------
' Reg Data Types...
Const REG_SZ = 1 ' Unicode¿ÕÖÕ½á×Ö·û´®
Const REG_EXPAND_SZ = 2 ' Unicode¿ÕÖÕ½á×Ö·û´®
Const REG_DWORD = 4 ' 32-bit Êý×Ö

' ×¢²á±í´´½¨ÀàÐÍÖµ...
Const REG_OPTION_NON_VOLATILE = 0 ' µ±ÏµÍ³ÖØÐÂÆô¶¯Ê±£¬¹Ø¼ü×Ö±»±£Áô

' ×¢²á±í¹Ø¼ü×Ö°²È«Ñ¡Ïî...
Const READ_CONTROL = &H20000
Const KEY_QUERY_VALUE = &H1
Const KEY_SET_VALUE = &H2
Const KEY_CREATE_SUB_KEY = &H4
Const KEY_ENUMERATE_SUB_KEYS = &H8
Const KEY_NOTIFY = &H10
Const KEY_CREATE_LINK = &H20
Const KEY_READ = KEY_QUERY_VALUE + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + READ_CONTROL
Const KEY_WRITE = KEY_SET_VALUE + KEY_CREATE_SUB_KEY + READ_CONTROL
Const KEY_EXECUTE = KEY_READ
Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _
KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _
KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL

' ×¢²á±í¹Ø¼ü×Ö¸ùÀàÐÍ...
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_PERFORMANCE_DATA = &H80000004

' ·µ»ØÖµ...
Const ERROR_NONE = 0
Const ERROR_BADKEY = 2
Const ERROR_ACCESS_DENIED = 8
Const ERROR_SUCCESS = 0

'---------------------------------------------------------------
'- ×¢²á±í°²È«ÊôÐÔÀàÐÍ...
'---------------------------------------------------------------
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Boolean
End Type
foxmsdn 2001-09-06
  • 打赏
  • 举报
回复
up
jixian 2001-07-23
  • 打赏
  • 举报
回复
@_@
houyingjun 2001-07-23
  • 打赏
  • 举报
回复
新建一串键值不就行了,重命名后不也不能为原先所用了吗?
foxmsdn 2001-07-23
  • 打赏
  • 举报
回复
那叫移动,不叫重命名。
MonkeyLin 2001-07-21
  • 打赏
  • 举报
回复
好像是有点难哦……你就麻烦一点拉……用麻烦的方法……先获得所有子键……再一一在新主键中建立

RegEnumKey--列出某Key的所有SubKey

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
tg123 2001-07-21
  • 打赏
  • 举报
回复
do
loop

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧