Python で WinReg を使用しようとしていますが、障害に直面しています。次のコードは、返された各エントリのキー:値を持つ辞書を返すことになっています。同じキー:値を取得していることに気付きました。
このコードを編集して別の値を取得するにはどうすればよいですか?
import _winreg
def subkeys(key):
i = 0
while True:
try:
subkey = _winreg.EnumKey(key, i)
yield subkey
i+=1
except WindowsError as e:
break
def traverse_registry_tree(hkey, keypath, tabs=0):
reg_dict = {}
key = _winreg.OpenKey(hkey, keypath, 0, _winreg.KEY_READ)
for subkeyname in subkeys(key):
reg_dict[subkeyname] = subkeyname
return reg_dict
keypath = r"SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
print traverse_registry_tree(_winreg.HKEY_LOCAL_MACHINE, keypath)
出力は次のようになります。
{'Mozilla Firefox 40.0.2 (x86 en-US)': 'Mozilla Firefox 40.0.2 (x86 en-US)', 'IE40': 'IE40', 'Connection Manager': 'Connection Manager'}
とにかく私は高度なpythonistではないことに注意してください。