Инсталлятор для MQL5 проектов

 

Есть желание написать Windows инсталлятор для MQL5 проектов. Он почти готов. Столкнулся с трудностью.

Нет возможности извне узнать путь к папке \MQL5 терминала в случае, если используется каталог AppData\Roaming\...

Уважаемый sergeev предложил вариант с запуском эксперта из командной строки, используя ключ /ex5: и дальнейший поиск этого установленного файла во всех возможных местах установки. Это решение единственно рабочее на данный момент.

Из MQL5 узнать путь можно через:

TerminalInfoString(TERMINAL_DATA_PATH)
Для инсталлятора нужно знать этот путь извне, желательно не запуская терминал.

Может разработчики сделаю что-нибудь в этом направлении?

Предлагаю добавить новый ключ для mql5.exe для вывода этого пути в консоль.

 

Чтоб не нужен был инсталлятор, разработчики сделали ресурсы - один файл-то положить в нужную папку можно?

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

Зачем инсталлятор? Для распостранения своих разработок мимо маркета? 

 

komposter:

Зачем инсталлятор? Для распостранения своих разработок мимо маркета?

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

А с другой стороны, разве я обязан все свои проекты для распространения через маркет пропускать?

 
avoitenko:

Предлагаю добавить новый ключ для mql5.exe для вывода этого пути в консоль.

WINXP : TerminalInfoString(TERMINAL_DATA_PATH) совпадает с путем mql5.exe

Если из командной строки известен путь mql5.exe, то значит извеcтен и TERMINAL_DATA_PATH

Как ключ может помочь? 

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о запущенной MQL5-программе - Документация по MQL5
 

A100:

Как ключ может помочь? 

Он поможет узнать путь к файлам для установки, для систем с включенным UAC.
 

Если имеется ввиду, что при запуске .cmd из папки терминала в режиме администратора сразу не ясно из какой папки он был запущен - то решается средствами cmd

А если запуск .cmd из произвольной папки или что-то другое имелось ввиду - тогда я не в теме

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5
 

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

Но это будет работать нормально только при одном установленном терминале.

 
Renat:

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

Но это будет работать нормально только при одном установленном терминале.

Можно например добавить этот путь к уже имеющимся данным в ветке реестра для деинсталляции терминала:

Но это не решит вопроса полностью, так как есть терминалы не предустановленные а перенесенные на ПК.

В идеале хочется знать как получается 32 символьное имя директории из пути к установленному терминалу, чтобы генерировать его на лету.

Если бы это имя генерировалось стандартными алгоритмами вроде MD5 или SHA, то вопрос был бы снят.

Но заранее знаю, что этот алгоритм останется в секрете, хотя ничего секретного кроме обеспечения уникальности имени он не делает.

 
Renat:

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

Но это будет работать нормально только при одном установленном терминале.

Именно, а это сейчас редкость. Давно уже назревает потребность в мультитерминале. Куча терминалов начинает действовать на нервы.

И ведь это не прихоть иметь много счетов, а нормальная диверсификация.

 
Urain:

Именно, а это сейчас редкость. Давно уже назревает потребность в мультитерминале. Куча терминалов начинает действовать на нервы.

И ведь это не прихоть иметь много счетов, а нормальная диверсификация.

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

Ну а то, что со стороны кто-то хочет с зоопарком работать, то это никакого отношения к самому терминалу не имеет.

О мультитерминале не стоит даже говорить - на такое технобезумие никто не пойдет.

 
Renat:

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

Ну а то, что со стороны кто-то хочет с зоопарком работать, то это никакого отношения к самому терминалу не имеет.

О мультитерминале не стоит даже говорить - на такое технобезумие никто не пойдет.

Не больно то и хотелось :)

Шлюзы между терминалами давно отработаны,

отдельный терминал при тонкой настройке работает экономно.

Я бы больше ратовал за лайт-авто версию, ну так чтоб очень экономно чтоб хоть чемпы устраивать, хоть на стареньком железе, хоть на слабенькой VPS можно было с десяток запустить.

Причина обращения: