| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 625 人关注过本帖
标题:用RegQueryValueEx取带有中文的键值,长度都有了,怎么取不出数据啊?
只看楼主 加入收藏
bjyfcx
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2022-11-20
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
用RegQueryValueEx取带有中文的键值,长度都有了,怎么取不出数据啊?
程序代码:
Private Sub Command3_Click()
Dim hKey As Long
Dim ret As Long
Dim lenData As Long
Dim typeData As Long
ret = RegOpenKey(HKEY_CURRENT_USER, "Software\VB and VBA Program Settings\QQ接收者", hKey)
If ret = 0 Then MsgBox "找到!" Else MsgBox "没找到!": Exit Sub            '得到0 ,说明得到
'先取数据区的长度
ret = RegQueryValueEx(hKey, "receivers", ByVal 0, typeData, ByVal vbNullString, lenData)
'准备数据区
Dim buff() As Byte
ReDim buff(lenData - 1)
'读取数据
ret = RegQueryValueEx(hKey, "receivers", ByVal 0, typeData, ByVal buff(0), lenData)
Dim val As String
'去掉末尾的空字符,VB不需要这个
ReDim Preserve buff(lenData - 2)
'转化为VB中的字符串
val = StrConv(buff, vbUnicode)
MsgBox val
RegCloseKey (hKey)
End Sub
搜索更多相关主题的帖子: Long ByVal 数据 ret Dim 
2022-11-20 17:25
mrexcel
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:126
专家分:480
注 册:2022-11-3
收藏(1)
得分:20 
程序代码:
Dim val As String
'去掉末尾的空字符,VB不需要这个
ReDim Preserve buff(lenData - 2)
'转化为VB中的字符串
val = StrConv(buff, vbUnicode)
MsgBox val

末尾的空字符莫删,最后TRIM去掉空格试试
2022-11-20 17:44
bjyfcx
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2022-11-20
收藏
得分:0 
回复 2楼 mrexcel
找到原因了,把 ByVal buff(0) 里面的ByVal 删掉就可以了,也不知道为什么,基础没打好
2022-11-20 18:00
快速回复:用RegQueryValueEx取带有中文的键值,长度都有了,怎么取不出数据啊?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015453 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved