- Moderatör
- #1
#Ri
Coder
C++:
namespace XMVKKeys {
typedef struct {
UINT KeyCode;
std::string KeyName;
BOOL Fail;
}XMVKKeyInfo;
BOOL isInitialized = FALSE;
std::vector<XMVKKeyInfo> XMKeysVector;
auto XMGetValidKeyCountA() {
auto x = 0;
if (!isInitialized)
return x;
for (auto m : XMKeysVector)
if (!m.Fail)
x++;
return x;
}
VOID Clean()
{
XMKeysVector.clear();
}
VOID InitKeys(UINT Start = 0x01, UINT End = 0xFE)
{
if(isInitialized)
Clean();
for (; Start < End; Start += 0x1)
{
CHAR KeyNameBuffer[1024];
LONG lpVal = (MapVirtualKeyW(Start, MAPVK_VK_TO_VSC) << 16);
if (GetKeyNameTextA(lpVal, KeyNameBuffer, 1024) > 0)
XMKeysVector.push_back(XMVKKeyInfo{ Start,KeyNameBuffer,FALSE});
else
XMKeysVector.push_back(XMVKKeyInfo{ Start,KeyNameBuffer,TRUE });
}
isInitialized = true;
}
VOID DumpKeys()
{
if (!isInitialized)
InitKeys();
auto max = XMGetValidKeyCountA();
printf("//XMaze's VK Key Dumper\n\n");
printf("\ntypedef struct {\nDWORD KeyCode;\nPCHAR KeyName;\n}sXMVKKeys;\n\n");
printf("sXMVKKeys XMVKKeys[%d] = { \n" , max);
auto counter = 0;
for (auto x : XMKeysVector)
{
if (x.Fail)
continue;
printf("{ 0x%X, \"%s\" }%s\n", x.KeyCode, x.KeyName.c_str(), (counter + 1 == max) ? "" : ",");
counter++;
}
printf("}");
}
}
Ussage
C++:
//optional init
//XMVKKeys::InitKeys(0x01,0x20);
XMVKKeys::DumpKeys();
C++:
//XMaze's VK Key Dumper
typedef struct {
DWORD KeyCode;
PCHAR KeyName;
}sXMVKKeys;
sXMVKKeys XMVKKeys[115] = {
{ 0x3, "Scroll Lock" },
{ 0x8, "Backspace" },
{ 0x9, "Tab" },
{ 0xC, "Num 5" },
{ 0xD, "Enter" },
{ 0x10, "Shift" },
{ 0x11, "Ctrl" },
{ 0x12, "Alt" },
{ 0x14, "Caps Lock" },
{ 0x1B, "Esc" },
{ 0x20, "Space" },
{ 0x21, "Num 9" },
{ 0x22, "Num 3" },
{ 0x23, "Num 1" },
{ 0x24, "Num 7" },
{ 0x25, "Num 4" },
{ 0x26, "Num 8" },
{ 0x27, "Num 6" },
{ 0x28, "Num 2" },
{ 0x2C, "Sys Req" },
{ 0x2D, "Num 0" },
{ 0x2E, "Num Del" },
{ 0x30, "0" },
{ 0x31, "1" },
{ 0x32, "2" },
{ 0x33, "3" },
{ 0x34, "4" },
{ 0x35, "5" },
{ 0x36, "6" },
{ 0x37, "7" },
{ 0x38, "8" },
{ 0x39, "9" },
{ 0x41, "A" },
{ 0x42, "B" },
{ 0x43, "C" },
{ 0x44, "D" },
{ 0x45, "E" },
{ 0x46, "F" },
{ 0x47, "G" },
{ 0x48, "H" },
{ 0x49, "I" },
{ 0x4A, "J" },
{ 0x4B, "K" },
{ 0x4C, "L" },
{ 0x4D, "M" },
{ 0x4E, "N" },
{ 0x4F, "O" },
{ 0x50, "P" },
{ 0x51, "Q" },
{ 0x52, "R" },
{ 0x53, "S" },
{ 0x54, "T" },
{ 0x55, "U" },
{ 0x56, "V" },
{ 0x57, "W" },
{ 0x58, "X" },
{ 0x59, "Y" },
{ 0x5A, "Z" },
{ 0x60, "Num 0" },
{ 0x61, "Num 1" },
{ 0x62, "Num 2" },
{ 0x63, "Num 3" },
{ 0x64, "Num 4" },
{ 0x65, "Num 5" },
{ 0x66, "Num 6" },
{ 0x67, "Num 7" },
{ 0x68, "Num 8" },
{ 0x69, "Num 9" },
{ 0x6A, "Num *" },
{ 0x6B, "Num +" },
{ 0x6D, "Num -" },
{ 0x6E, "Num Del" },
{ 0x6F, "." },
{ 0x70, "F1" },
{ 0x71, "F2" },
{ 0x72, "F3" },
{ 0x73, "F4" },
{ 0x74, "F5" },
{ 0x75, "F6" },
{ 0x76, "F7" },
{ 0x77, "F8" },
{ 0x78, "F9" },
{ 0x79, "F10" },
{ 0x7A, "F11" },
{ 0x7B, "F12" },
{ 0x90, "Pause" },
{ 0x91, "Scroll Lock" },
{ 0xA0, "Shift" },
{ 0xA1, "Right Shift" },
{ 0xA2, "Ctrl" },
{ 0xA3, "Ctrl" },
{ 0xA4, "Alt" },
{ 0xA5, "Alt" },
{ 0xAC, "M" },
{ 0xAD, "D" },
{ 0xAE, "C" },
{ 0xAF, "B" },
{ 0xB0, "P" },
{ 0xB1, "Q" },
{ 0xB2, "J" },
{ 0xB3, "G" },
{ 0xB7, "F" },
{ 0xBA, "■" },
{ 0xBC, "," },
{ 0xBD, "-" },
{ 0xBE, "." },
{ 0xBF, "÷" },
{ 0xC0, """ },
{ 0xC2, "F15" },
{ 0xDB, "" },
{ 0xDC, "" },
{ 0xDD, "³" },
{ 0xDE, "i" },
{ 0xDF, "*" },
{ 0xE2, "<" }
}
Bağlantıları görmek için lütfen
Giriş Yap
Credits : XMaze