Python温瑞格之祸

2024-09-26 18:02:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图访问windows注册表(在Python中)以使用廑winreg查询键值,但无法使其正常工作。下一行返回一个窗口错误,指出“系统找不到指定的文件”:

key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r'SOFTWARE\Autodesk\Maya\2012\Setup\InstallPath', 0, _winreg.KEY_ALL_ACCESS)

经过数小时的尝试,Python似乎看不到路径的“Maya”部分(它看起来像“2012”……等等……。“子路径”是“不可见”或不存在的)。现在我已经打开了注册表编辑器,我保证在香港电影节上有这样一条路。我在Windows764bit上。知道我做错了什么吗?这让我发疯了。谢谢。。。


Tags: 文件key路径注册表windowslocal系统错误
2条回答

您需要将访问密钥与64位访问密钥之一组合。

_winreg.KEY_WOW64_64KEY 指示64位Windows上的应用程序应在64位注册表视图上操作。

_winreg.KEY_WOW64_32KEY 指示64位Windows上的应用程序应在32位注册表视图上操作。

尝试:

_winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r'SOFTWARE\Autodesk\Maya\2012\Setup\InstallPath', 0, (_winreg.KEY_WOW64_64KEY + _winreg.KEY_ALL_ACCESS))

您也在使用64位版本的Python,还是32位版本的Python?(后者更常见)如果您使用的是32位版本的Python,_winreg模块默认情况下将看到32位注册表,而regedit将显示64位注册表。您应该能够告诉_winreg打开一个不同的视图;请参阅_winreg模块文档中的访问权限,特别是subsection on 64-bit specific flagsthe MSDN article it references。不幸的是,32位进程似乎无法访问64位注册表,但我可能遗漏了一些东西。

相关问题 更多 >

    热门问题