gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 06:01:35 26 4
gpt4 key购买 nike

我想使用 python 使用 Windows 注册表来定位 3d studio max。我也不受特定版本的限制。

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

我想要的键是 HKEY_LOCAL_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

系统信息:

Windows 7 专业版 64 位

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

最佳答案

如果您正在检测 3dsmax 的 64 位版本,则在 32 位进程中查找它会遇到困难。 64 位上的 32 位进程“方便地”替换了其注册表配置单元。

如果你想要:

hklm\SOFTWARE\autodesk\

您实际上正在查看:

hklm\SOFTWARE\Wow6432Node\autodesk\

由于 32 位应用程序在 64 位(在 Windows 上)之前就已经存在,因此有很多在注册表和文件系统中重定向的垫片,因此 32 位程序可以获得它们的 key 和 dll,而不需要 64 位程序以不同的方式命名所有内容(例如 c:\windows\system64、HKML\SOFTWARE64\)。

我认为使用 64 位进程访问 32 位总是更容易,而不是相反。但如果这是不可能的,这个问题可能会帮助您访问 64 位配置单元。 Change 64bit Registry from 32bit Python

关于python - 如何使用 python 使用注册表确定 3d studio max 的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10132092/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com