Я просмотрел полностью справочник и не нашёл такой функции. ....
О... наверно это не возможно
Средствами MQL терминал можно только закрыть. А вот заново запустить - нет. Для перезагрузки терминала придется использовать WinAPI (я делал только в виде dll):
Определить полный путь к текущему терминалу (достаточно средств MQL).
Получить ID процесса.
Записать ID процесса и путь в файл.
Запустить собственное приложение, которое впоследствии и выполнит запуск терминала.
Закрыть терминал (функция TerminalClose()).
Запущенное ранее приложение дожидается завершения процесса терминала (ID процесса был записан в файл).
По завершении процесса терминала загружается тот терминал, путь к которому также был ранее записан в файл.
Средствами MQL терминал можно только закрыть. А вот заново запустить - нет. Для перезагрузки терминала придется использовать WinAPI (я делал только в виде dll):
Определить полный путь к текущему терминалу (достаточно средств MQL).
Получить ID процесса.
Записать ID процесса и путь в файл.
Запустить собственное приложение, которое впоследствии и выполнит запуск терминала.
Закрыть терминал (функция TerminalClose()).
Запущенное ранее приложение дожидается завершения процесса терминала (ID процесса был записан в файл).
По завершении процесса терминала загружается тот терминал, путь к которому также был ранее записан в файл.
А вот если советник нужно передать другому пользователю, то попутно придется убедить его запускать терминал через специальный bat-файл, а не просто передать ему советник.
А вот если советник нужно передать другому пользователю, то попутно придется убедить его запускать терминал через специальный bat-файл, а не просто передать ему советник.
положа руку на сердце - терминал и сам умеет рестартовать/перезагружаться. Что он собственно и делает при обновлениях.
Так что вопрос ТС "как перезапустить терминал", можно решить например подсунув пустой zip (или оригинальный) в %APPDIR% или поставив нужную, но неизвестную, галочку в реестр
только вот практического сценария где это может понадобиться не могу придумать :-) Зачем советнику рестартовать целый терминал ?
положа руку на сердце - терминал и сам умеет рестартовать/перезагружаться. Что он собственно и делает при обновлениях.
Так что вопрос ТС "как перезапустить терминал", можно решить например подсунув пустой zip (или оригинальный) в %APPDIR% или поставив нужную, но неизвестную, галочку в реестр
только вот практического сценария где это может понадобиться не могу придумать :-) Зачем советнику рестартовать целый терминал ?
Повторюсь: если для себя, то способов достаточно много. А вот для решения "из коробки" придется делать все "по учебнику".
Ну а для чего нужно перезапускать терминал, написано в первом посте ветки.
Средствами MQL терминал можно только закрыть. А вот заново запустить - нет. Для перезагрузки терминала придется использовать WinAPI (я делал только в виде dll):
Определить полный путь к текущему терминалу (достаточно средств MQL).
Получить ID процесса.
Записать ID процесса и путь в файл.
Запустить собственное приложение, которое впоследствии и выполнит запуск терминала.
Закрыть терминал (функция TerminalClose()).
Запущенное ранее приложение дожидается завершения процесса терминала (ID процесса был записан в файл).
По завершении процесса терминала загружается тот терминал, путь к которому также был ранее записан в файл.
Приложение завершает свою работу.
Без ID запроса перезапуск.bat в принципе так и сделал, но столкнулся с проблемой: если из терминала не достать пароль, то и потом его никак не вписать при подключении. Не могу найти этой функции
Я просмотрел полностью справочник и не нашёл такой функции.
....
О... наверно это не возможно
Я просмотрел полностью справочник и не нашёл такой функции.
....
О... наверно это не возможно
Средствами MQL терминал можно только закрыть. А вот заново запустить - нет. Для перезагрузки терминала придется использовать WinAPI (я делал только в виде dll):
Средствами MQL терминал можно только закрыть. А вот заново запустить - нет. Для перезагрузки терминала придется использовать WinAPI (я делал только в виде dll):
можно проще
@echo off
:restart
terminal64.exe /portable
echo Restart
goto restart
можно проще
@echo off
:restart
terminal64.exe /portable
echo Restart
goto restart
Для себя - конечно проще ))
А вот если советник нужно передать другому пользователю, то попутно придется убедить его запускать терминал через специальный bat-файл, а не просто передать ему советник.
Для себя - конечно проще ))
А вот если советник нужно передать другому пользователю, то попутно придется убедить его запускать терминал через специальный bat-файл, а не просто передать ему советник.
положа руку на сердце - терминал и сам умеет рестартовать/перезагружаться. Что он собственно и делает при обновлениях.
Так что вопрос ТС "как перезапустить терминал", можно решить например подсунув пустой zip (или оригинальный) в %APPDIR% или поставив нужную, но неизвестную, галочку в реестр
только вот практического сценария где это может понадобиться не могу придумать :-) Зачем советнику рестартовать целый терминал ?
положа руку на сердце - терминал и сам умеет рестартовать/перезагружаться. Что он собственно и делает при обновлениях.
Так что вопрос ТС "как перезапустить терминал", можно решить например подсунув пустой zip (или оригинальный) в %APPDIR% или поставив нужную, но неизвестную, галочку в реестр
только вот практического сценария где это может понадобиться не могу придумать :-) Зачем советнику рестартовать целый терминал ?
Повторюсь: если для себя, то способов достаточно много. А вот для решения "из коробки" придется делать все "по учебнику".
Ну а для чего нужно перезапускать терминал, написано в первом посте ветки.
Средствами MQL терминал можно только закрыть. А вот заново запустить - нет. Для перезагрузки терминала придется использовать WinAPI (я делал только в виде dll):
Без ID запроса перезапуск.bat в принципе так и сделал, но столкнулся с проблемой: если из терминала не достать пароль, то и потом его никак не вписать при подключении. Не могу найти этой функции