EasyAndFastMod/Keys.mqh
2026-01-15 07:23:17 -05:00

72 lines
6.1 KiB
MQL5

//+------------------------------------------------------------------+
//| 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);
}