research по теме кодов к PostMessageA - страница 3

 
Erics >>:

Коды кнопок смотрятся в Spy++ (Control ID)

И используются для получения дескриптора кнопки:

hButtonStart = GetDlgItem(hTester, 0x40A);

Имя окна hTester никак не могу найти в программе Spy++. Если можно или скриншот где это написано или по действиям.

 

Большой труд, респект.

Gans-deGlucker,

Могу поделиться MT4TermComm, в личку мыло если интересует.

 
Valio >>:

Большой труд, респект.

Gans-deGlucker,

Могу поделиться MT4TermComm, в личку мыло если интересует.

Я думаю не только Gans-deGlucker интересно и остальным тоже.

 

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

 
Valio >>:

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

Прецедентов репрессий не было, выложите пожалуйста.

 

Почему-то этот код сдвигает в начало графика:

::PostMessageA(hChart, ::RegisterWindowMessageA("MetaTrader4_Internal_Message"), 55, LPARAM(nBar));

Хотя, где-то видел, что 55 двигает до указанного номера бара.

Может другой код нужен и какой? 

 
Zhunko:

Хотя, где-то видел, что 55 двигает до указанного номера бара.

Крайний параметр - время бара. Например, Time[nBar].
 
hrenfx:
Крайний параметр - время бара. Например, Time[nBar].
Спасибо!!! Не догадался на время проверить.
 

Сделал библиотеку сервисных функций к МТ4, чтобы поменьше параметров в функциях было и коды команд не запоминать. Сделал самые основные.

По сути, это оболочки к WinAPI функциям.

#import "ServicesMT4.dll"
 //===================================================================================================================================================
 // 1. Функция закрывает указанное окно графика.
 void ServiceCloseChart(int hChart); // Системный дескриптор закрываемого окна графика.
 //===================================================================================================================================================
 // 2. Функция удаляет эксперт с указанного графика. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceDeleteExpert(int hChart); // Системный дескриптор окна графика, удаляемого эксперта.
 //===================================================================================================================================================
 // 3. Функция снимает выделения с графических объектов. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceDeselectObjects(int hChart); // Системный дескриптор окна графика, удаляемого эксперта.
 //===================================================================================================================================================
 // 4. Функция управляет диалоговым окном завершения скрипта и возвращает системный дескриптор диалогового окна завершения скрипта, если окно есть,
 //    иначе - NULL. Скрипт работает только с русской и английской локализациями.
 int ServiceDialogScript(int bInstruction); // Команда для диалогового окна завершения скрипта: TRUE - завершить скрипт, FALSE - не завершать скрипт.
 //===================================================================================================================================================
 // 5. Функция включает или отключает эксперты, управляя кнопкой "Советники".
 void ServiceExpertEnabled();
 //===================================================================================================================================================
 // 6. Функция управляет горячими клавишами терминала МТ4.
 void ServiceHotKeys(int ucKey1,  // Горячая клавиша №1.
                     int ucKey2); // Горячая клавиша №2.
 //===================================================================================================================================================
 // 7. Функция вызывает окно списка индикаторов.
 bool ServiceListIndicators(int hChart); // Системный дескриптор окна графика, где вызывается окно списка индикаторов.
 //===================================================================================================================================================
 // 8. Функция загружает на указанный график эксперт по его имени.
 void ServiceLoadExpert(int    hChart,        // Системный дескриптор окна графика, куда загружается эксперт.
                        string szNameExpert); // Имя загружаемого эксперта.
 //===================================================================================================================================================
 // 9. Функция загружает на указанный график пользовательский индикатор по его имени.
 void ServiceLoadCustomIndicator(int    hChart,           // Системный дескриптор окна графика, куда загружается индикатор.
                                 string szNameIndicator); // Имя загружаемого индикатора.
 //===================================================================================================================================================
 //10. Функция загружает на указанный график скрипт по его имени.
 void ServiceLoadScript(int    hChart,        // Системный дескриптор окна графика, куда загружается скрипт.
                        string szNameScript); // Имя загружаемого скрипта.
 //===================================================================================================================================================
 //11. Функция загружает на указанный график стандартный индикатор по его имени.
 void ServiceLoadStdIndicator(int    hChart,           // Системный дескриптор окна графика, куда загружается индикатор.
                              string szNameIndicator); // Имя загружаемого индикатора.
 //===================================================================================================================================================
 //12. Функция отключает автопрокрутку графика.
 void ServiceNoAutoScroll(int hChart); // Системный дескриптор окна графика, где отключается автопрокрутка.
 //===================================================================================================================================================
 //13. Функция открывает окно графика символа, расположенного в строке nLine окна "Обзор рынка".
 void ServiceOpenChart(int nLine); // Номер строки в окне "Обзор рынка".
 //===================================================================================================================================================
 //14. Функция вызывает меню свойств эксперта. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServicePropertiesExpert(int hChart); // Системный дескриптор окна графика, где вызывается меню свойств эксперта.
 //===================================================================================================================================================
 //15. Функция пересканирования серверов. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceRescanServers();
 //===================================================================================================================================================
 //16. Функция делает окна МТ4 и графика активным.
 void ServiceSetActiveChart(int hChart); // Системный дескриптор активируемого окна.
 //===================================================================================================================================================
 //17. Функция позиционирует график по левой границе на указанное время.
 void ServiceSetBar(int      hChart, // Системный дескриптор окна графика, куда загружается индикатор.
                    datetime lTime); // Номер бара у левой границы окна.
 //===================================================================================================================================================
 //18. Функция устанавливает указанный таймфрейм по его номеру на указанном графике. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceSetTimeframeByNumber(int hChart,      // Системный дескриптор окна графика, где устанавливается ТФ.
                                  int nTimeFrame); // Номер устанавливаемого ТФ от 0 до 8.
 //===================================================================================================================================================
 //19. Функция устанавливает указанный таймфрейм по его периоду на указанном графике. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceSetTimeframeByPeriod(int hChart,   // Системный дескриптор окна графика, где устанавливается ТФ.
                                  int nPeriod); // Период устанавливаемого ТФ: PERIOD_M1       1  1 минута;
                                                //                             PERIOD_M5       5  5 минут;
                                                //                             PERIOD_M15     15  15 минут;
                                                //                             PERIOD_M30     30  30 минут;
                                                //                             PERIOD_H1      60  1 час;
                                                //                             PERIOD_H4     240  4 часа;
                                                //                             PERIOD_D1    1440  1 день;
                                                //                             PERIOD_W1   10080  1 неделя;
                                                //                             PERIOD_MN1  43200  1 месяц.
 //===================================================================================================================================================
 //20. Функция устанавливает указанный таймфрейм по его имени на указанном графике. В случае успеха функция возвращает TRUE, иначе - FALSE.
 bool ServiceSetTimeframeByName(int    hChart, // Системный дескриптор окна графика, где устанавливается ТФ.
                                string sName); // Имя устанавливаемого ТФ: "M1"    1 минута;
                                               //                          "M5"    5 минут;
                                               //                          "M15"  15 минут;
                                               //                          "M30"  30 минут;
                                               //                          "H1"    1 час;
                                               //                          "H4"    4 часа;
                                               //                          "D1"    1 день;
                                               //                          "W1"    1 неделя;
                                               //                          "MN1"   1 месяц.
 //===================================================================================================================================================
 //21. Функция эммулирует тик для эксперта на указанном графике.
 void ServiceTickExpert(int hChart); // Системный дескриптор окна графика, для эмуляции тика для эксперта.
 //===================================================================================================================================================
 //22. Функция эммулирует тик для индикаторов на указанном графике.
 void ServiceTickIndicators(int hChart); // Системный дескриптор окна графика, для эмуляции тика для индикаторов.
 //===================================================================================================================================================
 //23. Функция меняет размер баров на графике.
 bool ServiceZoom(int hChart, // Системный дескриптор окна графика, для эмуляции тика для эксперт.
                  int bZoom); // Направление изменения размеров баров: TRUE  - увеличение размера на один шаг;
                              //                                       FALSE - уменьшение размера на один шаг.
 //===================================================================================================================================================
#import
Файлы:
 
Zhunko:

Сделал библиотеку сервисных функций к МТ4, чтобы поменьше параметров в функциях было и коды команд не запоминать. Сделал самые основные.

Так все же ти функции можно было реализовать на MQL4 + WinAPI. Зачем своя DLL?
Причина обращения: