C++ Virtual Key Code & Name Dumper

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
#Ri
Coder
Katılım
17 Ocak 2016
Mesajlar
1,111
Çözümler
2
Tepki puanı
2,542
Ödüller
12
Yaş
9
10 HİZMET YILI
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, "<" }
}

:indir:

Bağlantıları görmek için lütfen Giriş Yap


Credits : XMaze
 
aka panic.rs
Kurucu
Katılım
18 Haz 2015
Mesajlar
3,379
Çözümler
50
Tepki puanı
13,156
Ödüller
22
Sosyal
10 HİZMET YILI
Eline sağlık
https://memoryhackers.org/konular/c-ornek-struct-array.44091/
 
Seçkin Üye
Katılım
29 Ocak 2018
Mesajlar
399
Çözümler
3
Tepki puanı
179
8 HİZMET YILI
Bu Kodu yazarken Hararet Gecırmıstır Buyuk Ihtımalle.
Saol Kod ICIN Elıne Sağlık
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst