为什么使用RegRead读取值,其中一个无法读取【已解决】
本帖最后由 ttmv2019sx 于 2023-11-10 10:23 编辑请问一下各大神,为什么使用RegRead在读取WINDOWS注册表 的时候有一个值是无法读取,一直是提示-1出错 -1 = 无法打开请求的值,但是在相同位置下的,其它的项是可以读到值的内容的,
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon LastUsedUsername 这个是无法读到, 但是换成Shell的是可以读取,奇怪了都是位于winlogon下的,应该也不会有权限一说的吧,看了权限是允许的,不然的话也不可能是shell这个下的是可以被读到的,有知道的大神这个是为什么的吗?
A版,可否帮忙看一下,谢谢 还是权限问题吧,先加 #RequireAdmin 试试 afan 发表于 2023-11-8 14:24
还是权限问题吧,先加 #RequireAdmin 试试
A版,不是权限问题,我已经加过的,没有用,搜了一下论坛发现里面没有相关的,就试着你以前说的,64位与32位的定向的问题试了一个,结果是可以了,但是真的是奇怪相同的位置,一个好读一个不好读出值,加了64以后就可以了,最关键的是我的这个电脑是64位的,我在64位操作也是出错的,但是加上64后就全可以了,不知道是为什么。 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)
怪咖很怪i 发表于 2023-11-8 21:26
If @OSArch = "X86" Then
Global $HKLM = 'HKLM'
ElseIf @OSArch = "X64" Then
是的,加上64就可以了,但是不加同一个地方,有几个是可以有几个是不可以,有点奇怪,反正64加上OK了就行了,谢谢
页:
[1]