Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
попробовал, но получил ошибку во время исполнения
Значит у Вас терминал 32-разрядный.
ознакомился поглубже.
Изменил немного озвучку
и все одно, при выгрузке MQL5 скрипта, появляется 80045006
Есть ощущение, что WaitUntilDone контролирует контекст самого vbs, а когда он рушится принудительно из MQL никакой WaitUntilDone уже не помогает.
Если это так, то помогла бы задержка перед выгрузкой MQL5 скрипта. Т.е. при
подождать пока ShellExecuteW наговорится
Такое реально?
Да, всё верно. ShellExecute запускает скрипт и сразу отваливает. Нужно не только ждать отработки скрипта, но и получать дескриптор процесса (хоста vbs) и выполнять на него WaitForSingleObject. При этом в OnDeinit нужно убивать запущенный процесс по его дескриптору. Только придётся использовать ShellExecutEx или CreateProcess со всем гемороем заполнения структуры, иначе дескриптор не получить.
Есть статья https://www.codeproject.com/Articles/1842/A-newbie-s-elementary-guide-to-spawning-processes , там вопрос под вывеской "Q: How do I start a program, and halt execution of my current program, till that program exits?".