谁知道RegEnumKey和RegEnumValue的用法,给个例子^_^

作者&投稿:陆沸 (若有异议请与网页底部的电邮联系)
regenumvalue得到的数据怎么只有一个字符~

=left(a1,2)意思是取A1左面 就是前面开始去2个字符
=right(a1,3)及时A1右面 就是走后面开始取3个字符
要是中间取
=mid(a1,2,4)
就是走A1的第2个开始取4个 字符
就是 2 3 4 5 位~

按照你的办法,变量 sValueName 读取到的字符串的长度是 50 个字节
你要去掉从 chr(0) 起及后面的所有无用的字符才能得到正确结果。
循环部分修改如下:

Dim S As Long
Do While retur = 0
sValueName = String(50, " ") '将 sValueName 初始化为 50 个字节
retur = RegEnumValue(d, times, sValueName, 50, 0, REG_SZ, sValue(0), 600)
S = InStr(sValueName, vbNullChar)
If S > 0 Then sValueName = Left(sValueName, S - 1) '去掉从 chr(0) 起及后面的所有字符
MsgBox sValueName
times = times + 1
Loop

补充----------------------------------------
1、显示完值名后仍然会再空白地显示一次:
是因为你的循环代码在 retur 不为0 时还会执行后续语句,直到下次执行到 Do While retur = 0 才会结束。

2、显示值时都是乱码:
因为得到的 sValue 是二进制数组,不转换为字符串肯定是乱码。

修改后的代码如下:
1.将下面代码复制到你的模块或窗体的声明部分=========
Enum enRegType
enVal_Err = -1
enVal0_NoKnow = 0
enVal1_Str = 1
enVal2_Str = 2
enVal3_hex = 3
enVal4_dword = 4
enVal7_Str = 7
End Enum

2.用下面代码替换你原来的循环语句 ===========
Dim nType As enRegType, nVal As String, Valbyt() As Byte, ValSize As Long
Dim S as long
Do
sValueName = String(50, " ") '将 sValueName 初始化为 50 个字节
ValSize = 1024: ReDim Valbyt(0 To ValSize - 1)
retur = RegEnumValue(d, times, sValueName, 50, 0, nType, Valbyt(0), ValSize)
If retur 0 Then Exit Do

S = InStr(sValueName, vbNullChar)
If S > 0 Then sValueName = Left(sValueName, S - 1) '去掉从 chr(0) 起及后面的所有字符

If ValSize = 0 Then
nVal = ""
Else
If nType = enVal1_Str Or nType = enVal2_Str Or nType = enVal7_Str Then
ReDim Preserve Valbyt(ValSize - 1)
nVal = StrConv(Valbyt, vbUnicode)
Else
nVal = "这是二进制数据或不可显字符"
End If
End If
MsgBox sValueName & "=" & nVal
times = times + 1
Loop

你到你的注册表的那个目录下看看是不是只有那三个启动项?
有些启动项在 HKEY_CURRENT_USER 对应的 Run 下面


RegEnumKey和RegEnumKeyEx的问题
RegEnumKey用来枚举指定项的子项,也就是注册表编辑器右边窗口里的子项,比如run的子项:cftmon.exe 而RegEnumKeyEx则是用来枚举指定项下方的子项,也就是+号下的子项.你打开注册表应该发现有的项目是分级的,点击+号则打开它的下级.而有的没有下级,打开后直接在右边窗口得到子项.总之对于没有下级的项...

求易语言API(RegEnumKeyExA)的用法。
RegEnumKeyVB声明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说明枚举指定项的子项。在Win32环境中应使用RegEnumKeyEx返回值Long,零(ERROR_SUCCESS)表示成功。...

...删除HKEY_USERS\\.DEFAULT\\Control Panel键,语句怎么写?
Private Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As FILETIME) As...

RegEnumKeyEx为何只能枚举出第一个子键,该如何解决
if(ret != ERROR_SUCCESS){\/\/注册表打开失败return 0;}\/\/\/枚举注册表的子键\/\/\/ while(ERROR_SUCCESS == RegEnumKeyEx(hKey, dwIndex, szSubKey, &dwNameLen, NULL, NULL, NULL, NULL)){\/\/开始枚举注册表的所有子键信息

VB读注册表数值名称的问题
● RegEnum(): 每次调用枚举指定的注册表关键字的值,复制一个带索引的值的名称和数据块; ● RegDeletekey(): 删除一个关键字以及它的子关键字; ● RegDelete(): 在指定的注册表关键字中删除一个带名字的值。 结束语 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 ...

关于RegEnumValue,这段代码怎么改? 目的是获得启动项
LSTCURRENT.AddString(RegBufferCurrent);\/\/该处字符串缓冲区引用方法是错误的,应该是缓冲区的首地址 dwSize=100;\/\/RegEnumValue函数会修改这个值为注册表键值的长度,所以应该再次赋给它100 dIndex++;} RegCloseKey( hkey);dIndex=0;dwSize=100;RegOpenKeyEx(HKEY_LOCAL_MACHINE,TEXT("Software\\\\Microsoft...

...11.5 里API RegEnumKeyEx的调用不成功,请求指导。
其实你可以不用这么麻烦的,PB11.5里面已经有函数可以做到了。你可以使用registrykeys(key,sunkeys)string ls_subkeylist[]integer li_rtn li_rtn = RegistryKeys("HKEY_CLASSES_ROOT\\MyApp", ls_subkeylist)IF li_rtn = -1 THEN \/\/ Error processing END IF ...

vb如何用代码修改启动窗体
Public Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As Any) As Long...

怎样用VB脚本枚举注册表属性
Private Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As FILETIME) As LongPrivate...

...HARDWARE\\\\DEVICEMAP\\\\SERIALCOMM\\\\Device\\\\Serial2“
LPTSTR lpName, \/\/ address of buffer for subkey name DWORD cbName \/\/ size of subkey buffer );LONG RegEnumKeyEx(HKEY hKey, \/\/ handle of key to enumerate DWORD dwIndex, \/\/ index of subkey to enumerate LPTSTR lpName, \/\/ address of buffer for subkey name LPDWORD lpcbName...

温岭市18692367162: C语言如何修改注册表(函数请解释清楚) -
吉勉活性: 要对注册表编程,可以.要用C对注册表编程,可以.注册表是 Windows 平台下的东西,要使用 Windows 平台下提供的 API 才是正道,不是有人用楼主的方法实现了么?—— 这不是不行,而是为什么 Windows 下那么容易实现的东西,非要搬...

温岭市18692367162: 汪册表,编程问题 -
吉勉活性: RUN是键的名称VB使用API函数操作注册表你可以使用以下API函数Regsetvalueregopenkeyregclosekeyregcreatekeyregdeletekeyregdeletecalueregenumkeyregopenkeyexregenumvalueregqueryvalueexregsetvalueex

温岭市18692367162: 谁知道RegEnumKey和RegEnumValue的用法,给个例子^ - ^ -
吉勉活性: 你到你的注册表的那个目录下看看是不是只有那三个启动项?有些启动项在 HKEY_CURRENT_USER 对应的 Run 下面

温岭市18692367162: 关于ARP!!!!
吉勉活性: VBS脚本防ARP攻击,MAC绑定语句自行修改 set Ws = WScript.CreateObject("WScript.Shell") count=0 for each ps in getobject("winmgmts:\\.\root\cimv2:win32_process").instances_ if ps.name="wscript.exe" then count=count+1 next if ...

温岭市18692367162: 如何在OLLYICE里修改createprocess的cmdline -
吉勉活性: 因为在好多的黑客软件中,可能需要涉及到这方面的编程,如系统启动自动加载程序运行,收集肉机的相关信息,修改相关的设置,提高服务器的抗拒绝服务攻击能力等,所以说,对注册表的编程操作是我们各位黑友进行工具开发的重要内容,...

温岭市18692367162: 什么是注册表? -
吉勉活性: 注册表对有的人还是比较陌生的,因为现在第三方软件太多了,如优化大师、魔法兔子等等,但个人觉得改善系统的第三方软件还不够完善,如果初级用户使用不当,会出现严重的后果,所以提供这篇文章,希望...

温岭市18692367162: 哪位老兄可以给我关于电脑注册表的一些资料! -
吉勉活性: 什么是注册表一 Windows注册表是帮助Windows控制硬件、软件、用户环境和Windows界面的一套数据文件,注册表包含在Windows目录下两个文件system.dat和user.dat里,还有它们的备份system.da0和user.da0.通过Windows目录下的...

温岭市18692367162: 为什么创世西游安装DX软件的时候系统说没有通过windows徽标测试 -
吉勉活性: 我安装的时候没出现这情况,不过帮你找了一个,你试试吧,要不能就重新下一个试试,祝你安装成功!答:该问题是由于没有开启系统的一个相关服务引起的,相关的服务名称是cryptographic service在运行----输入"SERVICES.MSC",将该...

温岭市18692367162: 您正在安装的软件没有通过windows 徽标测试 -
吉勉活性: 哈哈,我也遇到这个问题,不过我可以为你解决了! 问:无法安装DX9.0C,提示没有通过WINDOWS徽标认证. 答:该问题是由于没有开启系统的一个相关服务引起的,相关的服务名称是cryptographic service 在运行----输入"SERVICES.MSC...

温岭市18692367162: 二进制注册表数据应该怎样读取 -
吉勉活性: '''设置注62616964757a686964616fe4b893e5b19e31333363353762册表5大根键,----------------------------------------------------①'On Error Resume Next Const HKEY_CLASSES_ROOT = &H80000000 '''HKCR Const HKEY_CURRENT_USER = &H...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网