Вот файл - почитайте его внимательно там много интересного. (Об WinApi поищите темы на 4-ке как https://www.mql5.com/ru/forum/152533 и https://www.mql5.com/ru/forum/125202)
Не проверял но попробуйте:
int hwnd = int(ChartGetInteger(ChartID(), CHART_WINDOW_HANDLE)); PostMessageW(hwnd, WM_COMMAND, 33458, 0);
Вот файл - почитайте его внимательно там много интересного. (Об WinApi поищите темы на 4-ке как https://www.mql5.com/ru/forum/152533 и https://www.mql5.com/ru/forum/125202)
Не проверял но попробуйте:
да, проверил - не работает ни так, ни через родительский хендл.
Ну всегда есть путь через симуляцию нажатия клавиши F9
keybd_event (VK_F9, 0x45, KEYEVENTF_EXTENDEDKEY|0, 0); keybd_event (VK_F9, 0x45, KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP, 0);
Но это будет срабатывать только если терминал - активное окно в момент нажатия.
да, проверил - не работает ни так, ни через родительский хендл.
Ну всегда есть путь через симуляцию нажатия клавиши F9
Но это будет срабатывать только если терминал - активное окно в момент нажатия.
Большое спасибо! Все заработало. :)
Где можно изучить работу с DLL`лами?
Где можно изучить работу с DLL`лами?
Наверное, имелось в виду - WinAPI? Если да, то это ресурс MSDN нужно изучать. Вот, к примеру, так описывается keybd_event - http://msdn.microsoft.com/en-us/library/windows/desktop/ms646304(v=vs.85).aspx.
- msdn.microsoft.com
Да, в принципе можно торгового робота написать без использования MQL. Приложение на С/С++ да WinApi. Только придется еще изучить и внутренние сообщения терминала, но это мелочи.
Можно, но это будет ненадежная неповоротливая монструозная хрень.
Ненадежная... возможно.
Монструозная (первый раз прочитал почему-то как мЕнструозная) это вряд ли, если не писать прямо на ассемблере. Модульная разработка и никаких монстров ))
День добрый. Прошу подсказать, как программно вызвать открытия окна нового ордера (горячая клавиша - F9)? Это делеается через user34.dll? Каую функцию использовать, каой код клавиши F9?
#import "user32.dll" int GetAncestor(int, int); int PostMessageW(int, int, int, int); #import void OnStart() { int handle_mt = GetAncestor( WindowHandle(Symbol(),Period()), 2 ); PostMessageW( handle_mt, WM_COMMAND, 35431, 0 );
Но там действительно огромное количество тонкостей.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
День добрый. Прошу подсказать, как программно вызвать открытия окна нового ордера (горячая клавиша - F9)? Это делеается через user34.dll? Каую функцию использовать, каой код клавиши F9?
Где можно почитать про работу с WinApi функцией?
Спасибо.