Как программно запустить клиентский терминал MetaTrader 4?

 

Для программного запуска терминала МТ4 использую API-функцию

ShellExecuteW(0,"open",pathMT4+"\\terminal.exe",portable,pathMT4,0);

 Здесь

pathMT4 -  путь к корневой папке терминала

portable - это либо "", либо "/portable".

Терминал открывается, но отсутствуют все зарегистрированные в нем счета, и открывается окошко с предложением ввести пароль для последнего использованного на терминале счета.

В версии 509 МТ4 терминал запускался без проблем.

Допускаю, что в новейшую версию МТ4 введены дополнительные ограничения по безопасности.

Однако, как программно запустить терминал МТ4 без необходимости ручной регистрации на счете?

Всем заранее спасибо за ответы.

 
dokpiknik:

Для программного запуска терминала МТ4 использую API-функцию

 Здесь

pathMT4 -  путь к корневой папке терминала

portable - это либо "", либо "/portable".

Терминал открывается, но отсутствуют все зарегистрированные в нем счета, и открывается окошко с предложением ввести пароль для последнего использованного на терминале счета.

В версии 509 МТ4 терминал запускался без проблем.

Допускаю, что в новейшую версию МТ4 введены дополнительные ограничения по безопасности.

Однако, как программно запустить терминал МТ4 без необходимости ручной регистрации на счете?

Всем заранее спасибо за ответы.

user32.dll имитация нажатия клавишь вверх\вниз, выбираем нужный счёт(по идее должны быть в списке), имитайия Enter
 
sanyooooook:
user32.dll имитация нажатия клавишь вверх\вниз, выбираем нужный счёт(по идее должны быть в списке), имитайия Enter


Списка счетов нет, нажать не на что. Спасибо за ответ.
 
в настройках терминала предварительно ставим галочку "сохранять личные данные при старте"
 
FAQ:
в настройках терминала предварительно ставим галочку "сохранять личные данные при старте"


Класс!!! 

Извини, просто понравилось.  

 
дело в том, что в старых билдах ее можно было установить программно, а сейчас - нет
 
Тем более. 
 
FAQ:
в настройках терминала предварительно ставим галочку "сохранять личные данные при старте"


Галочка "сохранять личные данные при старте", разумеется, стоит. В том и фокус, что, несмотря на наличие этой галочки, имеет место описанный выше эффект требования пароля.

Я поясню, зачем нужна затея с программным стартом. Мой советник предусматривает автоматический поиск на интернетовской странице обновлений и, при согласии пользователя, их загрузку и размещение файлов по каталогам. Для этого из советника стартует инсталлятор (.exe), а МТ4 командой из советника закрывается (PostMessage, WM_CLOSE). После выполнения обновления инсталлятор запускает МТ4. МТ4 стартует, только криво. как описано выше. Сам инсталлятор сгружается из интернета и размещается в папке Libraries, оттуда и запускается.

Как многим, мне хотелось бы красивое решение, когда пользователь получает полный сервис. В данном случае - автоматический рестарт МТ4 после обновления советника. По-моему, он имеем на это право. 

 

терминал\справка\сервис\конфигурация при старте

возможно проблема в портабельном запуске 

 
FAQ:

терминал\справка\сервис\конфигурация при старте

возможно проблема в портабельном запуске 


Оба варианта (портабельный запуск, то есть при размещении файлов советника в корневом каталоге МТ4, и непортабельный - при размещении файлов данных в системной директории Windows) проверены. Тщательно проверены. Результаты идентичны - негативны.

А это "терминал\справка\сервис\конфигурация при старте" я не совсем понял. Какие еще установки существенны для рассматриваемой проблемы помимо упомянутой выше галочки, которая постоянно присутствует?

 

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

смотрите в сторону "запуска от имени" возможно загвоздка здесь.