我正在尝试通过 python 脚本实例化一个程序,如下所示
os.startfile( '"C:/Program Files/Autodesk/3ds Max 2010/3dsmax.exe"' )
由于 3dsMax 需要一些时间来加载,我想等到它完全加载完成。我检查任务管理器以查看是否3dsmax10.exe
在列表中,但是一旦进程开始(显然)它就在列表中。那么有没有办法确定它是否已完全加载?
任何帮助表示赞赏
谢谢
这是一个有点骇人听闻(不可靠)的解决方案。在命令行上使用 MAXScript 脚本启动 3ds Max。例如
c:\3dsmax\3dsmax -U MAXScript myscript.ms
正如 Parceval 所建议的,这个脚本可以使用 MAXScript 命令创建一个新文件:
createFile c:\tmp\myfile.txt
接下来在 Python 中等待文件存在(不要忘记先删除它)。总而言之:
while not os.path.exists(c:\tmp\myfile.txt):
time.sleep(1)
完全加载有点主观。据我所知,3DS MAX 执行插件加载——这绝对是加载时间的主要部分——向您显示启动画面。只有在加载完成后,它才会显示其主窗口。
您可以利用这一事实并使用 WinAPI 不断监视现有窗口,以了解主窗口何时出现。使用标题文本或 wnd-class 来查找它。
您可以在maxhome \Scripts\Startup 中放置一个简单的 maxscript 脚本,该脚本将在 max 完成启动时启动。这个脚本可以创建一个文件,或者通过 com 或 tcp 与你的 python 脚本对话。