Почему функция TerminalInfoInteger(TERMINAL_KEYSTATE_ESCAPE) всегда возвращает 0 независимо от состояния клавиши Esc?
void OnStart() { while (!IsStopped()) { if (TerminalInfoInteger(TERMINAL_KEYSTATE_ESCAPE)) Alert("Escape"); Sleep(100); } }
Уточнение: функция вызывается в событии OnChartEvent индикатора при проверке на CHARTEVENT_KEYDOWN, нажата ли клавиша Esc при нажатии на другую клавишу.
Ivan Titov #:
Уточнение: функция вызывается в событии OnChartEvent индикатора при проверке на CHARTEVENT_KEYDOWN, нажата ли клавиша Esc при нажатии на другую клавишу.
Уточнение: функция вызывается в событии OnChartEvent индикатора при проверке на CHARTEVENT_KEYDOWN, нажата ли клавиша Esc при нажатии на другую клавишу.
С клавишами работаю через велосипед, поэтому просто скопировал код.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
fxsaber, 2024.02.27 14:01
Срабатывание по заданной комбинации клавиш.
#property indicator_chart_window #property indicator_plots 0 #include <fxsaber\Keyboard\Keyboard.mqh> // https://www.mql5.com/ru/code/48393 input ENUM_KEYCODE inKeyCode = KEYCODE_KEY_A; // По какой клавише срабатывание input group "Какие клавиши должны быть дополнительно нажаты/включены" input ENUM_KEYSTATE inKeyStateEnable1 = KEYSTATE_NONE; input ENUM_KEYSTATE inKeyStateEnable2 = KEYSTATE_NONE; input ENUM_KEYSTATE inKeyStateEnable3 = KEYSTATE_NONE; input group "Какие клавиши НЕ должны быть нажаты/включены" input ENUM_KEYSTATE inKeyStateDisable1 = KEYSTATE_NONE; input ENUM_KEYSTATE inKeyStateDisable2 = KEYSTATE_NONE; input ENUM_KEYSTATE inKeyStateDisable3 = KEYSTATE_NONE; void OnChartEvent( const int id, const long &lparam, const double&, const string& ) { if ((id == CHARTEVENT_KEYDOWN) && (lparam == inKeyCode) && KEYBOARD::KeysState(inKeyStateEnable1 | inKeyStateEnable2 | inKeyStateEnable3, inKeyStateDisable1 | inKeyStateDisable2 | inKeyStateDisable3)) Alert(KEYBOARD::Pressed(lparam)); } int OnCalculate ( const int rates_total, const int, const int, const double &[] ) { return(rates_total); }

Срабатывает комбинация в индикаторе.
Alert: ESCAPE+KEYCODE_KEY_A
Как минимум, на моей машине работает.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь