从32位Python更改64位注册表

时间:2011-12-14 15:01:43

标签: python window registry 32bit-64bit

我很难理解这一点。如果我是正确的,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/

谢谢, 盎司

1 个答案:

答案 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