【问题标题】:How can I hide the console window and bring up a splash screen?如何隐藏控制台窗口并显示启动画面?
【发布时间】:2010-10-28 22:07:08
【问题描述】:

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

【问题讨论】:

    标签: c++ c windows matlab splash-screen


    【解决方案1】:

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

    我个人没有使用过它们,但如果你想设计自己的启动画面功能,它们至少应该给你一些指导。

    【讨论】:

      【解决方案2】:

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

      启动器会

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

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2011-04-03
          • 2017-08-03
          • 1970-01-01
          • 2014-11-10
          • 1970-01-01
          • 1970-01-01
          • 2014-08-23
          • 2011-04-04
          相关资源
          最近更新 更多