Получение Клавиатурной Раскладки Активного Окна

Тема в разделе "Другие", создана пользователем agronomchek, 17 июн 2012.

  1. agronomchek

    agronomchek Гость

    Репутация:
    0
    Доброго времени суток, товарищи!

    Есть служба, внутри которой постоянно должна проходить проверка текущей раскладки и, с учетом её, расишифровывать сканкод в символ ASCII, но GetKeyboardLayout() всегда возвращает значение 00x0409, что есть раскадка US. Но 00x0419 (Русский), не возвращается. Ниже привожу кусок кода.

    Код:
    char GetSymbolFromScancode(UINT scanCode) // переводит код нажатой клавиши в текст
    {
    BYTE btKeyState[256];
    HKL hklLayout = GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(), NULL)); // узнаем язык клавиатуры
    unsigned short Symbol[2]; 
    GetKeyboardState(btKeyState); 
    if((ToAsciiEx(MapVirtualKey(scanCode, 3), MapVirtualKey(scanCode, 2), btKeyState, Symbol, 0, hklLayout) == 1)
    {
    return Symbol[0];
    }
    return -1;
    }
     
Загрузка...
Похожие Темы - Получение Клавиатурной Раскладки
  1. ArthurPatriot
    Ответов:
    2
    Просмотров:
    80
  2. Дедок
    Ответов:
    12
    Просмотров:
    401
  3. WebWare Team
    Ответов:
    3
    Просмотров:
    1.941
  4. Vander
    Ответов:
    3
    Просмотров:
    1.345
  5. ghostphisher
    Ответов:
    15
    Просмотров:
    599

Поделиться этой страницей