在python中读取注册表中的键值,代码如下:
#coding:utf-8
import win32api, win32con
import os
key = win32api.RegOpenKeyEx(win32con.HKEY_CLASSES_ROOT, 'CLSID\\{01249E9F-88FF-45d5-82DB-A1BEE06E123C}\\Shell\Open\\Command', 0, win32con.KEY_READ)
keyValue = win32api.RegQueryValue(key, '')
print keyValue
然后运行的时候报下面的错误:
Traceback (most recent call last):
File "D:\users\Desktop\yunpanAuto.py", line 8, in <module>
key = win32api.RegOpenKeyEx(win32con.HKEY_CLASSES_ROOT, 'CLSID\\{01249E9F-88FF-45d5-82DB-A1BEE06E123C}\\Shell\Open\\Command', 0, win32con.KEY_READ)
error: (2, 'RegOpenKeyEx', '\xcf\xb5\xcd\xb3\xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xce\xc4\xbc\xfe\xa1\xa3')
这个依据我自身的问题,原因是我的window系统是64位,而python是32位,因此需要加上另外一个参数:
key = win32api.RegOpenKeyEx(win32con.HKEY_CLASSES_ROOT, 'CLSID\\{01249E9F-88FF-45d5-82DB-A1BEE06E123C}\\Shell\Open\\Command', 0, win32con.KEY_READ | win32con.KEY_WOW64_64KEY)
将上面的key后面的语句更改即可。
本文介绍了解决Python在64位Windows系统上读取注册表遇到的问题,并提供了一个有效的解决方案,即通过添加额外参数来确保32位Python能够正确访问64位系统的注册表。
74

被折叠的 条评论
为什么被折叠?



