XDJM 帮帮忙,关于操作注册表的问题!在线等

hlq8210 2007-04-04 09:54:35
我现在用vb对注册表操作遇到一个问题,操作系统的用户不同取的值不一样
代码如下:
Option Explicit
Private Declare Function RegQueryValueEx Lib "advapi32.dll"Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long

Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByRef phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Const HKEY_CURRENT_USER As Long = &H80000001

Function GetRegValue(ByVal ValueName As String) As String
Dim lngRet As Long
Dim lnghKey As Long
Dim lnglenData As Long
Dim lngtypeData As Long
Dim strRegName As String
Dim strkeyValue As String
lngRet = RegOpenKey(HKEY_CURRENT_USER, "software\VB and VBA Program Settings\setUser", lnghKey)
If lngRet <> 0 Then
GetRegValue = "RegOpenKey"
Exit Function
End If
lngRet = RegQueryValueEx(lnghKey, ValueName, 0, lngtypeData, ByVal vbNullString, lnglenData)

strkeyValue = String(lnglenData, Chr(0))
RegQueryValueEx lnghKey, ValueName, 0, lngtypeData, ByVal strkeyValue, lnglenData
GetRegValue = Left(strkeyValue, InStr(strkeyValue, Chr(0)) - 1)
If lngRet <> 0 Then
GetRegValue = "RegQueryValueEx"
RegCloseKey lnghKey
Exit Function
End If

RegCloseKey lnghKey
End Function


现在操作系统不管用什么用户操作,只能取出 administrator 用户写入的值,我现在要求取出当前用户的值,谢谢啦


...全文
179 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hlq8210 2007-04-04
  • 打赏
  • 举报
回复
对于software\VB and VBA Program Settings\项下注册表的读写,vb提供了getsetting,savesetting ---谢谢你的回复
这个我知道,但是如果 操作系统 增加一个用户 登录系统,取出的注册表保存的值会是 administrator 用户的

你现在的操作系统是什么?---谢谢你的回复 我现在用的操作系统是XP
TechnoFantasy 2007-04-04
  • 打赏
  • 举报
回复
你现在的操作系统是什么?
fankun 2007-04-04
  • 打赏
  • 举报
回复
对于software\VB and VBA Program Settings\项下注册表的读写,vb提供了getsetting,savesetting
fankun 2007-04-04
  • 打赏
  • 举报
回复
regopenkey 函数打开注册表项的时候会用系统默认的安全级别


win32应用程序应该使用RegQueryValueEx。lpValue被定义成一个字串,以维持同win16的兼容性(在win16中,值全都是字串)
估计是操作权限不够,或者是函数用得有问题,一般来说,取值应该用regcreatekey先打开。




1,486

社区成员

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

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