我能够使用下面的代码从我的Windows 7机器注册表配置单元"HKEY_LOCAL_MACHINE"中成功检索5个子键.
from _winreg import *
try:
i = 0
while True:
subkey = EnumKey(HKEY_LOCAL_MACHINE, i)
print subkey
i += 1
except WindowsError:
pass
Run Code Online (Sandbox Code Playgroud)
我的问题是,我如何枚举那些键?我想最终列出SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged文件夹中的所有密钥,但我无法弄清楚如何走下去.
为了回应第一条评论,我在我的机器上运行了这段代码,虽然它没有出错,但它没有产生结果.
from _winreg import *
aReg = ConnectRegistry(None,HKEY_LOCAL_MACHINE)
aKey = OpenKey(aReg, r"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged")
for i in range(1024):
try:
keyname = EnumKey(aKey, i)
asubkey = OpenKey(aKey, keyname)
val = QueryValueEx(asubkey, "Description")
print val
except WindowsError:
break
Run Code Online (Sandbox Code Playgroud)
一个regedit或reg查询显示该文件夹中的6个值,但是我无法获得一个python脚本来向我显示这六个值.
小智 1
我没有相同的注册表项可供搜索,但以下代码将列出 HKEY_LOCAL_MACHINE\Software 中的所有子项。我认为如果您将 keyVal 字符串的值更改为您的目录,它就会起作用。
块try ... except是这样的,因为 EnumKey 会失败。我没有将其作为 for 循环来执行,因为我不知道如何获得 aKey 的正确长度。
keyVal = r"Software"
aKey = OpenKey(HKEY_LOCAL_MACHINE, keyVal, 0, KEY_ALL_ACCESS)
try:
i = 0
while True:
asubkey = EnumKey(aKey, i)
print(asubkey)
i += 1
except WindowsError:
pass
Run Code Online (Sandbox Code Playgroud)