如何检查MAX是否加载完成

3 投票
3 回答
1024 浏览
提问于 2025-04-15 23:16

我想通过一个Python脚本来启动一个程序,代码如下:

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

因为3dsMax加载需要一些时间,所以我想等它完全加载完再继续。我查看任务管理器,想看看3dsmax10.exe是否在列表中,但一旦进程开始,它就会出现在列表里(这很明显)。那么,有没有办法知道它是否已经完全加载好了呢?

任何帮助都很感激

谢谢

3 个回答

1

你可以在 maxhome\Scripts\Startup 这个文件夹里放一个简单的 maxscript 脚本,这样当 max 启动完成后,这个脚本就会自动运行。这个脚本可以用来创建一个文件,或者通过 com 或 tcp 和你的 python 脚本进行交流。

1

完全加载这个说法有点主观。根据我的记忆,3DS MAX在加载插件时——这可是加载时间中非常重要的一部分——会先显示一个启动画面。等到加载完成后,它才会显示主窗口。

你可以利用这个特点,不断监控现有的窗口,使用WinAPI来判断主窗口什么时候出现。你可以通过窗口的标题文字或者窗口类名来在其他窗口中找到它。

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)

撰写回答