Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить символ, для текуущей раскладки 
:(
    Опции темы
Coocky
Дата 12.2.2009, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: нет
Всего: 62



Привет! Что-то бьюсь,бьюсь-никак не получается.. Мне нужно получить символ клавиши для текущей раскладки.
Уже перепробывал кучу методов-ничего не работает. :(
Вот последний вариант
Код

//Получаю активное окно и его расладку.

                DWORD tmpdw;
        GUITHREADINFO lpgui={0};
        HWND tmphwnd=::GetForegroundWindow();
        DWORD dwTargetPID;
        tmpdw=GetWindowThreadProcessId(tmphwnd,&dwTargetPID);
        lpgui.cbSize=sizeof(GUITHREADINFO);
        GetGUIThreadInfo(tmpdw,&lpgui); 
        tmphwnd=lpgui.hwndFocus;
        HKL h_param=GetKeyboardLayout(tmpdw);
        

        BYTE *keyState=new BYTE[256];
        BOOL T=GetKeyboardState(keyState);
            SHORT sVal = VkKeyScanEx(';', h_param);// Получаю виртуальный код для такой-то клавиши (к примеру) 
        BYTE vk = LOBYTE(sVal);


        UINT nScanCode = MapVirtualKeyEx(vk, 0, h_param); //Получаю ее скэн-код

        int nChars = ToUnicodeEx(vk, nScanCode, keyState, awch,sizeof(awch)/sizeof(awch[0]), 0, h_param); //Тут всегда бред
        

Блин,в анлийской и русской клавиатуре все ок,например при нажатии ";" , я получаю ";" В датской  должен быть "æ", а у меня выходит ","
Ну что же делать? Подскажите! Хэээээээээээээээлп! Реально запарился. Искал по инету-особо не нашел..Только не отвеченные вопросы smile
Как-то ж стандартная виндовая ВИРТУАЛЬНАЯ клавиатура все ж распознает?И нормально отображает...

Это сообщение отредактировал(а) Coocky - 12.2.2009, 13:51


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Coocky
Дата 13.2.2009, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: нет
Всего: 62



Вопрос решен.Спасибо за помощь! smile 


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
YanTsys
Дата 16.2.2009, 17:50 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 22.3.2006

Репутация: нет
Всего: нет



Цитата

Искал по инету-особо не нашел..Только не отвеченные вопросы 


Теперь одним больше...  smile 
PM MAIL ICQ   Вверх
ASMatic
Дата 5.9.2009, 17:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 254
Регистрация: 14.3.2009

Репутация: 1
Всего: 1



мог бы уже и написать в чём был недоучёт,а то как говорил YanTsys - теперь одним больше. Вот так и рождаются безконечные поиски по инету и в конечном итоге приводят к созданию новой темы на форуме. smile 
 smile 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0750 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.