找回密码
 加入
搜索
查看: 200|回复: 5

[AU3基础] 为什么使用RegRead读取值,其中一个无法读取【已解决】

[复制链接]
发表于 2023-11-8 11:02:02 | 显示全部楼层 |阅读模式
本帖最后由 ttmv2019sx 于 2023-11-10 10:23 编辑

请问一下各大神,为什么使用RegRead在读取WINDOWS注册表 的时候有一个值是无法读取,一直是提示-1出错 -1 = 无法打开请求的值,但是在相同位置下的,其它的项是可以读到值的内容的,


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon     LastUsedUsername   这个是无法读到, 但是换成Shell的是可以读取,奇怪了都是位于winlogon下的,应该也不会有权限一说的吧,看了权限是允许的,不然的话也不可能是shell这个下的是可以被读到的,有知道的大神这个是为什么的吗?
 楼主| 发表于 2023-11-8 14:14:28 | 显示全部楼层
A版,可否帮忙看一下,谢谢
发表于 2023-11-8 14:24:34 | 显示全部楼层
还是权限问题吧,先加 #RequireAdmin 试试
 楼主| 发表于 2023-11-8 14:34:07 | 显示全部楼层
afan 发表于 2023-11-8 14:24
还是权限问题吧,先加 #RequireAdmin 试试

A版,不是权限问题,我已经加过的,没有用,搜了一下论坛发现里面没有相关的,就试着你以前说的,64位与32位的定向的问题试了一个,结果是可以了,但是真的是奇怪相同的位置,一个好读一个不好读出值,加了64以后就可以了,最关键的是我的这个电脑是64位的,我在64位操作也是出错的,但是加上64后就全可以了,不知道是为什么。
发表于 2023-11-8 21:26:26 | 显示全部楼层
If @OSArch = "X86" Then
        Global $HKLM = 'HKLM'
ElseIf @OSArch = "X64" Then
        Global $HKLM = 'HKLM64'
EndIf
Local $sUserName = RegRead($HKLM & "\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "LastUsedUsername")
ConsoleWrite("读取内如为:" & $sUserName)
 楼主| 发表于 2023-11-10 10:22:56 | 显示全部楼层
怪咖很怪i 发表于 2023-11-8 21:26
If @OSArch = "X86" Then
        Global $HKLM = 'HKLM'
ElseIf @OSArch = "X64" Then

是的,加上64就可以了,但是不加同一个地方,有几个是可以有几个是不可以,有点奇怪,反正64加上OK了就行了,谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-5 20:36 , Processed in 0.078758 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表