MetaTrader4_Internal_Message

 
Вот здесь 'Конвертер периодов' есть код, использующий "внутреннее сообщение" МТ

int MT4InternalMsg = RegisterWindowMessageA("MetaTrader4_Internal_Message"); //incoming tick for EAs
PostMessageA(hwnd,MT4InternalMsg,2,1); //incoming tick for EAs

Наверняка это не одно сообщение, которое можно использовать при разработке экспертов. Но разработчики естественно (хотя, блин, что тут естественного?!!) будут молчать как партизаны и ничего нам не ответят. Поэтому вопрос к знатокам системного программирования:

Если есть процедура регистрации сообщения, значит гдето внутрях ОС есть список зарегистрированных сообщений. Как можно его получить и повыискивать там все зарегистрированные сообщения MetaTrader4_Internal_Message и их параметры(?).

Отдельная просьба к разработчикам: ну хотябы объясните нам в чем смыл вашего замалчивания этих возможностей?! Понятное дело, что если вы это опубликуете вам надо будет это как то поддерживать. Но я, и наверно еще многие другие, согласен получить этот список (и список кодов для PostMessageA тоже) без каких либо гарантий и обязательств с вашей стороны, даже без каких либо подробных комментариев - просто текст:

MT4InternalMsg,2,1 - эмуляция тика

MT4InternalMsg,X,Y - скролл графика

....


 
ForexTools >>:

Если есть процедура регистрации сообщения, значит гдето внутрях ОС есть список зарегистрированных сообщений. Как можно его получить и повыискивать там все зарегистрированные сообщения MetaTrader4_Internal_Message и их параметры(?).

Отдельная просьба к разработчикам: ну хотябы объясните нам в чем смыл вашего замалчивания этих возможностей?! Понятное дело, что если вы это опубликуете вам надо будет это как то поддерживать. Но я, и наверно еще многие другие, согласен получить этот список (и список кодов для PostMessageA тоже) без каких либо гарантий и обязательств с вашей стороны, даже без каких либо подробных комментариев - просто текст:


Было уже отвечено и проведено исследование кодов - смотри тут - research по теме кодов к PostMessageA

 
TedBeer >>:


Было уже отвечено и проведено исследование кодов - смотри тут - research по теме кодов к PostMessageA

Это я знаю, но главный вопрос был по поводу MetaTrader4_Internal_Message

 

MT4InternalMsg, 2, X - эмуляция тика

MT4InternalMsg, 17, X -  запуск скрипта с номером X (от нуля).
MT4InternalMsg, 55, X - скролл графика в позицию X - 1

 
ForexTools >>:

Это я знаю, но главный вопрос был по поводу MetaTrader4_Internal_Message

https://www.mql5.com/ru/forum/54904

 

По ссылке нет ничего нового по теме этой ветки.

 
а можно мне для общего развития узнать - что это за сообщения и как их можно использовать? что-то типа обработки событий терминала?
 

Простое:

// Остановка тестирования
PostMessage(hwnd, MT4InternalMsg, 28, 0);

// Запуск скриптов, индикаторов и советников:
PostMessageA(hwnd, MT4InternalMsg, 13, StandartIndicatorName);
PostMessageA(hwnd, MT4InternalMsg, 14, EAName);
PostMessageA(hwnd, MT4InternalMsg, 15, CustomIndicatorName);
PostMessageA(hwnd, MT4InternalMsg, 16, ScriptName);

Сложное:

Блин, туплю: жму в меню "Remove Expert", а никакое сообщение поймать не получается.
Подскажите, как удалить с графика советник?
 

 

не пашет :(( выбивает терминал в крашдамп

#import "user32.dll"
  int RegisterWindowMessageA(string lpstring);
  int PostMessageA(int hWnd,int Msg,int wParam,int lParam);
#import

/*
// Остановка тестирования
PostMessage(hwnd, MT4InternalMsg, 28, 0);

// Запуск скриптов, индикаторов и советников:
PostMessageA(hwnd, MT4InternalMsg, 13, StandartIndicatorName);
PostMessageA(hwnd, MT4InternalMsg, 14, EAName);
PostMessageA(hwnd, MT4InternalMsg, 15, CustomIndicatorName);
PostMessageA(hwnd, MT4InternalMsg, 16, ScriptName);
*/

void start()
{
  int hwnd = WindowHandle(Symbol(), Period());
  int MT4InternalMsg = RegisterWindowMessageA("MetaTrader4_Internal_Message"); 
  PostMessageA(hwnd, MT4InternalMsg, 15, "OsMA"); 
}

а жалко. давно мысля бродит написать скриптик который бы поочереди набрасывал да удалял разные графики да по валютам бегал. сидиш себе перед монитором а он тебе "Обзор рынка показывает" в картинках :))

 
ForexTools:

не пашет :(( выбивает терминал в крашдамп

Пашет, просто повнимательнее надо с определениями функций и их применением:

int PostMessageA( int hWnd, int Msg, int wParam, string lParam );
Кто-нибудь с программным удалением советника с чарта может помочь?
 
hrenfx:

Кто-нибудь с программным удалением советника с чарта может помочь? 

int hWnd = WindowHandle(Symbol(), Period());
PostMessageA(hWnd, WM_COMMAND, 33050, 0);
Причина обращения: