//+------------------------------------------------------------------+ //| Keys.mqh | //| Copyright 2016, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #include "KeyCodes.mqh" //+------------------------------------------------------------------+ //| Класс для работы с клавиатурой | //+------------------------------------------------------------------+ class CKeys { public: CKeys(void); ~CKeys(void); //--- Возвращает символ нажатой клавиши static string KeySymbol(const long key_code); //--- Возвращает состояние клавиши Ctrl static __forceinline bool KeyCtrlState(void); //--- Возвращает состояние клавиши Shift static __forceinline bool KeyShiftState(void); //--- Возвращает состояние клавиши Shift // static __forceinline bool KeyAltState(void); }; //+------------------------------------------------------------------+ //| Constructor | //+------------------------------------------------------------------+ CKeys::CKeys(void) { } //+------------------------------------------------------------------+ //| Destructor | //+------------------------------------------------------------------+ CKeys::~CKeys(void) { } //+------------------------------------------------------------------+ //| Возвращает символ нажатой клавиши | //+------------------------------------------------------------------+ string CKeys::KeySymbol(const long key_code) { string key_symbol = ""; //--- Если нужно ввести пробел (клавиша "Space") if(key_code == KEY_SPACE) { key_symbol = " "; } //--- Если нужно ввести (1) алфавитный символ или (2) символ цифровой клавиши или (3) специальный символ else if((key_code >= KEY_A && key_code <= KEY_Z) || (key_code >= KEY_0 && key_code <= KEY_9) || (key_code >= KEY_NUMLOCK_0 && key_code <= KEY_NUMLOCK_SLASH) || (key_code >= KEY_SEMICOLON && key_code <= KEY_SINGLE_QUOTE)) { key_symbol =::ShortToString(::TranslateKey((int)key_code)); } //--- Вернуть символ return(key_symbol); } //+------------------------------------------------------------------+ //| Возвращает состояние клавиши Ctrl | //+------------------------------------------------------------------+ __forceinline bool CKeys::KeyCtrlState(void) { return(::TerminalInfoInteger(TERMINAL_KEYSTATE_CONTROL) < 0); } //+------------------------------------------------------------------+ //| Возвращает состояние клавиши Shift | //+------------------------------------------------------------------+ __forceinline bool CKeys::KeyShiftState(void) { return(::TerminalInfoInteger(TERMINAL_KEYSTATE_SHIFT) < 0); }