我很难理解这一点。如果我是正确的,32位Python无法运行代码并更改64位的注册表值。我做对了吗?或者是否有开启的开关可以启用此功能?
有这样的: http://msdn.microsoft.com/en-us/library/aa384129%28v=VS.85%29.aspx
但是我如何使用以下代码? http://www.blog.pythonlibrary.org/2010/03/20/pythons-_winreg-editing-the-windows-registry/
谢谢, 盎司
答案 0 :(得分:6)
正如您链接到的MSDN文章所解释的那样,64位Windows有两个注册表视图,一个用于32位,一个用于64位。默认情况下,32位应用程序(例如,由32位Python解释程序执行的Python脚本)将访问32位视图。您可以使用MSDN文章中提到的标志强制它访问64位视图。为了能够使用这些标记,您需要使用正确的参数调用_winreg.OpenKey
,_winreg.CreateKeyEx
或_winreg.DeleteKeyEx
,例如
handle = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, "your_sub_key", 0, _winreg.KEY_READ | _winreg.KEY_WOW64_64KEY)
有关详细信息,请参阅_winreg
documentation。