Zac*_*own 8 python windows registry enumeration winreg
我将如何通过循环所有的值使用Python模块_winreg一个Windows注册表项.我的代码将执行我想要的操作,但它适用于指定注册表项的子项.
这是代码:
from _winreg import *
t = OpenKey(HKEY_CURRENT_USER, r"PATH TO KEY", 0, KEY_ALL_ACCESS)
try:
i = 0
while True:
subkey = EnumValue(t, i)
print subkey
i += 1
except WindowsError:
# WindowsError: [Errno 259] No more data is available
pass
Run Code Online (Sandbox Code Playgroud)
哦,想通了.但是,如果有人知道另一种方法,我仍然会接受这个答案!
我宁愿避免错误而不是潜入它......
使用_winreg.QueryInfoKey获取值的数量:
import _winreg
key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, r'PATH\TO\KEY', 0, _winreg.KEY_READ)
for i in xrange(0, _winreg.QueryInfoKey(key)[1]):
print _winreg.EnumValue(key, i)
Run Code Online (Sandbox Code Playgroud)
要获得Keys的数量,相同的方法,不同的索引(原始问题的后半部分):
for i in xrange(0, _winreg.QueryInfoKey(key)[0]):
print _winreg.EnumKey(key, i)
Run Code Online (Sandbox Code Playgroud)
注意:使用import而不是from ... import使函数和变量来自何处.在以后的生活中更容易遵循代码.
EnumValue不应该在这里有所帮助
# list all values for a key
try:
count = 0
while 1:
name, value, type = _winreg.EnumValue(t, count)
print repr(name),
count = count + 1
except WindowsError:
pass
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10476 次 |
| 最近记录: |