4

我使用 Matlab 编译器创建了一个 .exe 文件。该程序需要 15 秒才能启动。我想隐藏控制台窗口,并显示自定义启动画面。我怎样才能做到这一点?

4

3 回答 3

2

关于制作启动画面,The MathWorks File Exchange上有一些提交的内容就是这样处理的:

我个人没有使用过它们中的任何一个,但如果您想设计自己的闪屏功能,它们至少应该给您一些指导。

于 2009-05-26T14:07:15.643 回答
0

您可以编写一个“启动器”程序。

发射器将

  1. 创建启动画面
  2. 使用 CreateProcess() 或其他方法启动 matlab exe。
  3. 等到matlab exe正确打开
  4. 出口

棘手的一点是确定 matlab 程序何时启动。一种方法可能是在循环中调用 EnumWindows() 和 GetWindowText() 以查找 matlab 窗口标题,但如果您了解 matlab 程序的功能,您可能会想出更好的方法。

您可能需要继续检查 matlab 进程是否已终止,以防出现问题。

于 2009-05-26T09:47:04.797 回答
0

要摆脱 DOS 窗口,请mcc -e使用mcc -m. 请参阅在线文档中的“MATLAB 编译器 > 函数参考”,由doc(). 不过,您可能不想这样做:DOS 窗口是最后的输出;这是未处理的异常、核心转储和其他诊断输出的所在。至少让它成为一个选项,这样您就可以拥有一个具有 DOS 窗口的调试版本。

根据我的经验,编译的独立 Matlab 程序的启动开销发生在控制转移到用户 M 代码之前,因此需要在外部程序中完成启动画面,或者连接到mcc生成的 C 包装器。您可以使用 Michael J 关于编写启动器的建议。不过,您不是在寻找matlab.exeMatlab 桌面窗口,因为这是一个独立的应用程序。要检测 Matlab 程序何时启动,请让您的 M 代码写出一个小临时文件作为程序执行的第一件事,并让您的启动器注意这一点。

于 2009-05-26T15:50:12.973 回答