新手问题 Python 读取注册表的问题,求助

wilask · 2013年10月23日 · 最后由 wilask 回复于 2013年10月23日 · 6218 次阅读

这里高手多,在这里问了;

在 Windows 2003 64 位系统上用 Python 读取注册表,代码:

UnInsKey = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall'
Key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, UnInsKey)

为什么在 32 位系统上则成功,但在 64 位系统上则打开的是这个路径:SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

为什么呢??

晕倒,没有知道吗

估计这里的人对 python 了解不多,对于 windows 下的了解更不多。。。这里面大部分都是搞 web 的。。。找个专业的 python 网站问问吧。 貌似 64 位和 32 位的注册表有所不同 或者是 python 这个方法有没有参数来指定多少位的操作系统。。。 或者有专门或许 64 位系统注册表的方法。。找找吧

#3 楼 @krazy 改成如下后,报错没有权限

Key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, UnInsKey, 0,_winreg.KEY_WOW64_64KEY)

WindowsError: [Error 5] Access is denied

为什么???

#2 楼 @2008feixu python Chian 里的很少人回答的

你是 admin 的用户吗?win7 对于权限做的很严谨

#6 楼 @2008feixu 是 Windows Server 2003 64bit 是用 Admin 用户登录的

#7 楼 @krazy 谢谢,还是不行 目前的解决办法是,在 64 位系统,安装 64 位的 Python,就可以了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号