Задача состоит в копировании файлов индикатора в нужные папки.
Сложность в том, что для работы индикатора нужно разместить необходимые файлы в три папки:
1. в TERMINAL_PATH - файлы библиотеки SSL
2. в TERMINAL_DATA_PATH - сам файл индикатора
3. в TERMINAL_COMMONDATA_PATH - вспомогательный файл
Так же на рабочем компьютере может быть несколько терминалов, соответственно либо нужно как-то выбирать нужный или устанавливать во все.
Первое, что приходит в голову сделать исполняемый файл установщика (.exe), считать пути из реестра (если они там есть) и скопировать файлы в нудные места.
Может кто-то предложит более простое решение?
Не хочется использовать exe инсталлятор, т.к. с ним тоже могут возникнуть проблемы с антивирусами и другими защитами ОС. Может возможно обойтись bat файлом?
по хорошему, в TERMINAL_PATH ничего класть нельзя, считайте что он "чужой". Им управляет и за него отвечает инсталлятор терминала. Все exe, dll и прочие файлы там - от MQ
каталогов TERMINAL_DATA_PATH может быть больше одного. Более того, это типично так - как минимум 2 инстанса терминалов, подчас portable. У пользователя надо будет спрашивать куда именно ставить вашу нетленку.
так что реальный выход - действительно писать инсталлятор, правильно располагать свои DLL, при необходимости регестрировать их в ОС
вот нашел эту ветку,в которой говорится о каких-то возможностях инсталляции самим терминалом. это реализовано?
- 2013.07.28
- revers45
- www.mql5.com
есть ли определенные ветки реестра в которых хранятся пути к терминалу [TERMINAL_PATH, TERMINAL_DATA_PATH, TERMINAL_COMMONDATA_PATH] ?
я когда-то давно делал подобное через %APPDATA% не трогая реестр
CommonFiles это %APPDATA%/MetaQuotes/Terminal/Common
на каталоги DataFiles отдельных инстанцов есть указания в %APPDATA%/MetaQuotes/Terminal/*/origin.txt
я когда-то давно делал подобное через %APPDATA% не трогая реестр
CommonFiles это %APPDATA%/MetaQuotes/Terminal/Common
на каталоги DataFiles отдельных инстанцов есть указания в %APPDATA%/MetaQuotes/Terminal/*/origin.txt
Максим, спасибо. С этим уже можно работать.
А как быть с терминалами, которые используют папку MQL5 в Program Files (допустим при выключенном UAC)?
Максим, спасибо. С этим уже можно работать.
А как быть с терминалами, которые используют папку MQL5 в Program Files (допустим при выключенном UAC)?
в чужие каталоги никогда ничего не клал.
мой инсталлятор https://sourceforge.net/projects/mt-atcl/ для своих DLL и компонентов делает свои каталоги. А для отдельных терминалов раскладывает только через их %APPDATA%
Для начала, надо отказаться от установки терминалов по умолчанию, это для тупых американских домохозяек. Надо перевести запуск в режим portable/ Например, сейчас мой теминал для разработки запускается так:
E:\Forex\School\MT5_Develop3\Terminal64.cmd, где cmd содержит 1 строку:
start terminal64.exe /portable
Для отдельного запуска редактора
start metaeditor64.exe /portable
И нет больше необходимости ползать по убийственно длинным и непонятным путям типа C:\Users\mylogin\AppData\Roaming\MetaQuotes\Terminal\0A7B27E933034692744E19C135DAF7B5
Все вопросы копирования решаются за 30 сек. руками через TotalCommander. Или, если массово, через .cmd файлик.
я когда-то давно делал подобное через %APPDATA% не трогая реестр
CommonFiles это %APPDATA%/MetaQuotes/Terminal/Common
на каталоги DataFiles отдельных инстанцов есть указания в %APPDATA%/MetaQuotes/Terminal/*/origin.txt
Про этот подход Грибоедов написал трагедию Горе от ума. Да, я недавно консультировал одного MQL5 программиста и с болью в сердце видел, что чувак пользуется Проводником!!! Который также для тупых американских домохозяек ))
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Задача состоит в копировании файлов индикатора в нужные папки.
Сложность в том, что для работы индикатора нужно разместить необходимые файлы в три папки:
1. в TERMINAL_PATH - файлы библиотеки SSL
2. в TERMINAL_DATA_PATH - сам файл индикатора
3. в TERMINAL_COMMONDATA_PATH - вспомогательный файл
Так же на рабочем компьютере может быть несколько терминалов, соответственно либо нужно как-то выбирать нужный или устанавливать во все.
Первое, что приходит в голову сделать исполняемый файл установщика (.exe), считать пути из реестра (если они там есть) и скопировать файлы в нудные места.
Может кто-то предложит более простое решение?
Не хочется использовать exe инсталлятор, т.к. с ним тоже могут возникнуть проблемы с антивирусами и другими защитами ОС. Может возможно обойтись bat файлом?