如何使用python使用注册表确定3d studio max的位置?

如何使用python使用注册表确定3d studio max的位置?,python,windows-7-x64,3dsmax,Python,Windows 7 X64,3dsmax,我想使用python通过windows注册表找到3d studio max。我也不受特定版本的限制 我已经看到了几个使用_winreg的示例,但是虽然我可以在regedit中看到所需的键,但我无法通过python访问它 我想要的密钥是HKEY\U LOCAL\U MACHINE\SOFTWARE\Autodesk\3dsMax\14.0\MAX-1:409,值为Installdir 下面是我尝试使用的python脚本 from _winreg import * t = OpenKey(HKEY_

我想使用python通过windows注册表找到3d studio max。我也不受特定版本的限制

我已经看到了几个使用_winreg的示例,但是虽然我可以在regedit中看到所需的键,但我无法通过python访问它

我想要的密钥是HKEY\U LOCAL\U MACHINE\SOFTWARE\Autodesk\3dsMax\14.0\MAX-1:409,值为Installdir

下面是我尝试使用的python脚本

from _winreg import *
t = OpenKey(HKEY_LOCAL_MACHINE, r"SOFTWARE\Autodesk\3dsMax\14.0\Max-1:409", 0, KEY_READ)

#try:
i = 0
while True:
    subkey = EnumKey(t, i)
    print subkey
    i += 1
我得到的错误如下

Traceback (most recent call last):
File "C:\testreg.py", line 2, in <module>
t = OpenKey(HKEY_LOCAL_MACHINE, r"SOFTWARE\Autodesk\3dsMax\14.0\Max-1:409", 0, KEY_READ)
WindowsError: [Error 2] The system cannot find the file specified
回溯(最近一次呼叫最后一次):
文件“C:\testreg.py”,第2行,在
t=OpenKey(HKEY\U本地\u机器,r“软件\Autodesk\3dsMax\14.0\Max-1:409”,0,按键读取)
WindowsError:[错误2]系统找不到指定的文件
系统信息:

Windows 7 Professional 64位


使用Python 2.5、2.6和2.7(各32位版本)进行测试。

如果使用原始字符串(如使用的r'foo'语法所示),请去掉双反斜杠。

如果检测到64位版本的3dsmax,则使用32位进程将很难找到它。64位上的32位进程“方便地”替换了它们的注册表配置单元

如果您想要:

hklm\SOFTWARE\autodesk\
你实际上看到的是:

hklm\SOFTWARE\Wow6432Node\autodesk\
由于32位应用程序早于64位(在windows上)存在,因此在注册表和文件系统中有许多这样的垫片可以重定向,因此32位程序可以获得它们的键和DLL,而不需要64位程序以不同的方式命名所有内容(例如c:\windows\system64,HKML\SOFTWARE64\)

我认为使用64位进程访问32位总是比较容易,而不是相反。但如果这不可能,这个问题可能会帮助您访问64位蜂巢。

添加到上述内容(我也曾遇到64位的东西)中,有一个Autodesk官方页面:


干杯

您需要使用原始字符串或转义反斜杠,但不能同时使用两者。