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 用户写入的值,我现在要求取出当前用户的值,谢谢啦


...全文
183 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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先打开。




软件介绍: chipgenius4.0新修改了USB设备枚举算法,欢迎大家测试!特别是之前使用v3.02版本在Win7上检测失败或者结果错乱的xdjm们,期待你们的测试结果哦!!!如果测试ok的话,不久新版就会出炉版本更新:V4.001、全面支持Win7、Win8、WinXP、Win2000系统(含32Bit/64Bit)2、全面支持USB3.0、USB2.0、USB1.1接口检测3、增加USB设备电流检测、设备版本号检测功能4、增加一键截图功能,方便提交检测信息版本历史:Ver3.00Alpha 0 - 问题多多,不细说了^_^Alpha 1 - 增加了错误信息的显示,以便收集出错情况Alpha 2 - ①修正了一处可能造成闪退的代码;②支持USB3.0控制器的检测(试验);③修正了设备连接关系显示Beta 1 - ①解决关于USB3.0控制器下挂非USB3.0 HUB的一些小bug;②准确获取U盘、移动硬盘、USB光驱的盘符;③可以显示选定设备除芯片信息外的其他信息(设备未返回信息的字段自动隐藏);④提供摘要和详细信息两种视图;⑤自动选中列表中出现的第一个USB存储设备Beta 2 - ①修改了界面;②改善了在接有慧荣U盘的时候反应迟钝的问题;③自动插拔检测;④芯片数据库查询;⑤因为此版本改动巨大,故直接修改主版本号为4.00 ^_^Beta 3 - ①修改了一处下标越界的错误处理;②将盘符合并到摘要视图,去掉了详细接口显示;③支持查询USB HUB的TT数量;④支持更详细的USB设备类型检测Beta 4 - ①增加设备支持的USB总线协议版本检测,可以区分工作在低速状态下的高速设备;②支持量产成光驱 移动盘的U盘设备;③对于根集线器不返回端口数信息的主板,隐藏根集线器的端口数量信息Beta 5 - ①支持自动更新数据库;②增加一键截图功能(试验);③检测到插入动作时,自动选中新插入的盘;④修正了大字体环境下运行背景图错位的问题Beta 6 - ①修正某些情况加载数据库出现“Out of memory”错误;②修正从没有数据库或者数据库损坏的情况下在线更新到新数据库后界面不自动刷新的问题;③微调了检测结果的显示方式,突出芯片相关的信息

1,488

社区成员

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

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