读取带有python问题的注册表值

2024-09-28 22:24:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我觉得我在吃疯狂的药。因此,为了确保我使用的api的安全性,我必须从注册表中读取两个内容,然后传递给suds。问题在于读取注册表值。不管我做什么,我都会得到“Error2系统找不到指定的文件”。我知道注册表文件在那里,但它不让我读它。我已经在2个不同的2008 r2服务器上尝试了下面的代码。在一台Windows7机器上,我可以读取数值…但只能在一台机器上。下面是代码,我需要更改的实际目录(以保护匿名性)

from _winreg import *

key = OpenKey(HKEY_LOCAL_MACHINE, r"Software\a\b", 0, KEY_ALL_ACCESS)
devguid = QueryValueEx(key, "DeviceID")
devid = QueryValueEx(key, "DeviceGUID")
devnm = socket.gethostname()

如果我将目录改为\a\b以外的目录,它可以正常工作。我已经验证了这些目录上的权限与我可以从中读取的目录完全相同。在

另外,我可以从cmd运行以下命令并获得所需的输出: reg查询HKLM\software\a\b/v设备GUID 但当我从python脚本运行它时,它会说找不到指定的文件。在

^{pr2}$

以管理员的身份运行我的脚本什么的都没用。由于某些原因,python无法尝试并准备好注册表。。。。在


Tags: 文件key代码服务器目录脚本机器api
1条回答
网友
1楼 · 发布于 2024-09-28 22:24:36

首先,您需要确保反斜杠正确转义,或者按照第一个代码示例使用原始字符串。我假设你已经做到了。在

最可能的解释是在64位系统上使用32位Python。因此,必须由注册表重定向器提供注册表的32位视图。在

要么使用64位Python,要么使用64位视图专门打开密钥。通过指定KEY_WOW64_64KEY标志来执行后面的操作。在

相关问题 更多 >