Как я могу скрыть окно консоли и вызвать заставку? - PullRequest
4 голосов
/ 26 мая 2009

Я использовал Matlab Compiler для создания .exe-файла. Запуск программы занимает 15 секунд. Я хотел бы скрыть окно консоли и отобразить собственный экран-заставку. Как я могу это сделать?

Ответы [ 3 ]

2 голосов
/ 26 мая 2009

Что касается создания заставки, на есть несколько заявок на MathWorks File Exchange, которые касаются только этого:

Я не использовал ни одного из них лично, но они должны, по крайней мере, дать вам некоторые рекомендации, если вы хотите создать свою собственную функцию заставки.

0 голосов
/ 26 мая 2009

Чтобы избавиться от окна DOS, используйте mcc -e вместо mcc -m. См. «Компилятор MATLAB> Справочник по функциям» в онлайн-документации, созданной по doc(). Возможно, вы не захотите этого делать: окно DOS является последним средством; именно туда идут необработанные исключения, дампы ядра и другие диагностические данные. По крайней мере, сделайте это опцией, чтобы иметь возможность отладочной сборки с окном DOS.

По моему опыту, издержки запуска для скомпилированной автономной программы Matlab происходят до того, как управление переходит к пользовательскому M-коду, поэтому заставку нужно будет сделать во внешней программе или подключить к оболочке C, которая mcc генерирует. Вы могли бы использовать предложение Майкла Джей о написании пусковой установки. Вы не ищете matlab.exe или окно рабочего стола Matlab, так как это отдельное приложение. Чтобы определить, когда была запущена программа Matlab, попросите ваш М-код записать небольшой временный файл, как это делает программа в первую очередь, и попросите его запустить его.

0 голосов
/ 26 мая 2009

Вы можете написать программу для запуска.

Пусковая установка будет

  1. Создание заставки
  2. Запустите исполняемый файл Matlab, используя CreateProcess () или другой метод.
  3. Подождите, пока Matlab Exe правильно откроется
  4. Выход

Сложный бит будет определять, когда была запущена программа Matlab. Одним из методов может быть вызов EnumWindows () и GetWindowText () в цикле для поиска заголовка окна Matlab, но вы можете найти лучший способ, зная, что делает программа Matlab.

Вероятно, вам нужно будет постоянно проверять, что процесс matlab не умер, на случай, если что-то пойдет не так.

...