3

我正在尝试通过 python 脚本实例化一个程序,如下所示

os.startfile( '"C:/Program Files/Autodesk/3ds Max 2010/3dsmax.exe"' )

由于 3dsMax 需要一些时间来加载,我想等到它完全加载完成。我检查任务管理器以查看是否3dsmax10.exe在列表中,但是一旦进程开始(显然)它就在列表中。那么有没有办法确定它是否已完全加载?

任何帮助表示赞赏

谢谢

4

3 回答 3

2

这是一个有点骇人听闻(不可靠)的解决方案。在命令行上使用 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)
于 2010-10-20T18:36:06.417 回答
1

完全加载有点主观。据我所知,3DS MAX 执行插件加载——这绝对是加载时间的主要部分——向您显示启动画面。只有在加载完成后,它才会显示其主窗口。

您可以利用这一事实并使用 WinAPI 不断监视现有窗口,以了解主窗口何时出现。使用标题文本或 wnd-class 来查找它。

于 2010-05-28T09:01:27.603 回答
1

您可以在maxhome \Scripts\Startup 中放置一个简单的 maxscript 脚本,该脚本将在 max 完成启动时启动。这个脚本可以创建一个文件,或者通过 com 或 tcp 与你的 python 脚本对话。

于 2010-07-30T17:05:35.617 回答