1
0
Derivar 0
EasyAndFastMod/Keys.mqh

73 linhas
6,1 KiB
MQL5

2026-01-15 07:23:17 -05:00
<EFBFBD><EFBFBD>//+------------------------------------------------------------------+
//| Keys.mqh |
//| Copyright 2016, MetaQuotes Software Corp. |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#include "KeyCodes.mqh"
//+------------------------------------------------------------------+
//| ;0AA 4;O @01>BK A :;0280BC@>9 |
//+------------------------------------------------------------------+
class CKeys
{
public:
CKeys(void);
~CKeys(void);
//--- >72@0I05B A8<2>; =060B>9 :;028H8
static string KeySymbol(const long key_code);
//--- >72@0I05B A>AB>O=85 :;028H8 Ctrl
static __forceinline bool KeyCtrlState(void);
//--- >72@0I05B A>AB>O=85 :;028H8 Shift
static __forceinline bool KeyShiftState(void);
//--- >72@0I05B A>AB>O=85 :;028H8 Shift
// static __forceinline bool KeyAltState(void);
};
//+------------------------------------------------------------------+
//| Constructor |
//+------------------------------------------------------------------+
CKeys::CKeys(void)
{
}
//+------------------------------------------------------------------+
//| Destructor |
//+------------------------------------------------------------------+
CKeys::~CKeys(void)
{
}
//+------------------------------------------------------------------+
//| >72@0I05B A8<2>; =060B>9 :;028H8 |
//+------------------------------------------------------------------+
string CKeys::KeySymbol(const long key_code)
{
string key_symbol = "";
//--- A;8 =C6=> 225AB8 ?@>15; (:;028H0 "Space")
if(key_code == KEY_SPACE)
{
key_symbol = " ";
}
//--- A;8 =C6=> 225AB8 (1) 0;D028B=K9 A8<2>; 8;8 (2) A8<2>; F8D@>2>9 :;028H8 8;8 (3) A?5F80;L=K9 A8<2>;
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));
}
//--- 5@=CBL A8<2>;
return(key_symbol);
}
//+------------------------------------------------------------------+
//| >72@0I05B A>AB>O=85 :;028H8 Ctrl |
//+------------------------------------------------------------------+
__forceinline bool CKeys::KeyCtrlState(void)
{
return(::TerminalInfoInteger(TERMINAL_KEYSTATE_CONTROL) < 0);
}
//+------------------------------------------------------------------+
//| >72@0I05B A>AB>O=85 :;028H8 Shift |
//+------------------------------------------------------------------+
__forceinline bool CKeys::KeyShiftState(void)
{
return(::TerminalInfoInteger(TERMINAL_KEYSTATE_SHIFT) < 0);
}