+ -
当前位置:首页 → 问答吧 → 读取注册表问题

读取注册表问题

时间:2011-09-14

来源:互联网

Dim sValue As String
Call RegCreateKey(HKEY_LOCAL_MACHINE, regkey, KeyId)
sValue = Space(255)
nLength = 255
Call RegQueryValueEx(KeyId, lpName, 0, nValueType, ByVal sValue, nLength)

如上,读取注册表得到值
sValue="测试名称"


但是 sValue=sValue & "123"
sValue的值成了"测试名称 D C H M h y  `
??P p D C H M h y  `
? ? P 123" 

len(sValue)=255 原来是nLength缓存字节数影响了它的长度

谁知道我怎么把得到的值后面多余的长度去掉?
或者在RegQueryValueEx的时候直接知道它的真实长度,然后写进去呢?

不知道有没有表达清楚,知道的朋友帮我看一下

作者: yejian520   发布时间: 2011-09-14

Dim KeyId As Long
  Dim nLength As Long
  Dim tmpVal As String
  Call RegCreateKey(HKEY_LOCAL_MACHINE, regkey, KeyId)
  tmpVal = String$(1024, 0)
  nLength = 1024
  rc = RegQueryValueEx(KeyId, lpName, 0, lKeyValType, tmpVal, nLength)
  Reg_Vb_show = Left$(tmpVal, InStr(tmpVal, Chr(0)) - 1)
  RegCloseKey KeyId
已经解决,进来的结帖了

作者: yejian520   发布时间: 2011-09-14

这样的问题经常出现,,解决方法通常两种
1.用replace将chr(0)替换掉
s=replace(s,chr(0),"")
2.找到chr(0)的位置,left取出前面字符
s=left(s,instr(1,s,chr(0))-1)

作者: z_wenqian   发布时间: 2011-09-14

路过!楼主真是勤奋好学啊!这么晚了还奋斗。。

作者: Veron_04   发布时间: 2011-09-14

学习

作者: sunjs12345   发布时间: 2011-09-14

热门下载

更多