Re: Название раскладки
От: sasha Грузия  
Дата: 22.02.03 14:58
Оценка:
Здравствуйте, Begemotik, Вы писали:

B>Привет всем !

B>Возможно все просто, но что-то не как не могу найти в мсдне.
B>Используя GetKeyboardLayoutList получаю я список раскладок установленных в системе. Получаю разумеется идентификаторы типа 0x049049, далее мне надо вывести их пользователю для выбора, в комбобокс. Хотелось бы туда вывести строки типа руский... Как получить эти строки, собственно в этом и есть вопрос.

Эту информацию можно получить из реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts


Примерно вот так:
HKL pkl[100];
int klcount = GetKeyboardLayoutList(100, pkl);

TCHAR klname[KL_NAMELENGTH];

for(int i=0; i<klcount; i++)
{
    ActivateKeyboardLayout(pkl[i], 0);
    GetKeyboardLayoutName(klname);
// здесь, зная название раскладки в виде "00000409", можно из реестра достать
// соответствующее ему строку типа "Russian"
}

Не уверен, что это самый простой способ, но на крайний случай сгодится.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.