Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Большое СПАСИБО за пример использования фукций из "user32.dll"!!!
Имел ввиду, как получить коды команд API МТ4?
Всю информацию о запущенных процессах, созданных окнах, потоках можно получить с помощью утилиты Spy++, которая входит в состав дистрибутива Visual Studio.
Основное достоинство этой программы - возможность логирования Windows сообщений. С помощью этой функции утилиты как раз и определяются параметры таких
WinAPI функций как PostMessageA() и SendMessageA().
В ветке research по теме кодов к PostMessageA я выкладывал архив с этой утилитой. Научиться с ней работать несложно, но при этом надо иметь представление об окнах,
процессах и о том, как взаимодействуют окна между собой. Ну и знание WinAPI никто не отменял.
P.S. С учетом того, что серьезные изменения в МетаТрейдере не планируются, то набор оконных операций наверняка не изменится. Однако нужно иметь в ввиду, что
всегда существуют такой вариант, что приведенные мной выше коды перестанут работать в новых версиях МетаТрейдера.
Со скриптом разобрался.
Интересно, что подокно в списке индикаторов тоже является элементом списка.
Ilnur, я понял, что способа работать с именем индикатора в этом списке нет?
Однозначно нет или, что-нибудь можно придумать?
Здесь хороший пример (на С++) того, как ищется позиция по имени в списке TreeView элемента. Имя узла возвращается через указатель в структуре TV_ITEM.
В MQL4 нет возможности обратиться по указателю.
Есть конечно же немного корявый способ определения позиции интересуемого индикатора. Необходимо сначала сохранить шаблон текущего графика инструмента.
Затем проанализировать файл шаблона на наличие тегов <window> ... </window>, <indicator> ... </indicator>. Однако такой способ требует больших
затрат по программированию.
Ilnur, сделайте доброе дело, допишите, пожалуйста, в скрипт нажатие кнопок ОК и Закрыть.
Получится законченный инструмент для переинициализации индикаторов, и, наконец, прервется череда тем об их обновлении и принудительной компиляции.Ilnur, сделайте доброе дело, допишите, пожалуйста, в скрипт нажатие кнопок ОК и Закрыть.
Получится законченный инструмент для переинициализации индикаторов, и, наконец, прервется череда тем об их обновлении и принудительной компиляции.Со скриптом разобрался.
Интересно, что подокно в списке индикаторов тоже является элементом списка.
Ilnur, я понял, что способа работать с именем индикатора в этом списке нет?
Однозначно нет или, что-нибудь можно придумать?
При демонстрации примера представленного выше пришла идея реализации скрипта, вызывающего свойства конкретного индикатора.
Для этого скрипт необходимо дополнить функцией считывания заголовка окна свойств. Если строка заголовка содержит имя интересуемого
индикатора, то прерываем цикл. Правда есть одно неудобство: при поиске на экране будут мелькать вызываемые окна.
При демонстрации примера представленного выше пришла идея реализации скрипта, вызывающего свойства конкретного индикатора.
Для этого скрипт необходимо дополнить функцией считывания заголовка окна свойств. Если строка заголовка содержит имя интересуемого
индикатора, то прерываем цикл. Правда есть одно неудобство: при поиске на экране будут мелькать вызываемые окна.
Здорово! Может попробуете сделать?
Офигеть!!!
Ilnur, Вы съэкономили уйму времени!
Спасибо!!!