Re[4]: Как программно добавить в систему раскладку клавиатур
От: legolegs  
Дата: 17.05.06 08:45
Оценка:
BH>При вызове LoadKeyboardLayout флаг KLF_ACTIVATE установлен? Как задаете keyboard layout name в первом параметре для французской раскладки? И что за винда?

Если делать такой вызов:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HKL r = LoadKeyboardLayout ("0000040C", KLF_ACTIVATE);
Caption = IntToStr(r);
}

то в вин 98 всё действительно устанавливается. т.е. хлоп и есть новая раскладка (и даже не исчезает после перезагрузки). Большое спасибо! Но 98 малёхо устарела , нужно чтобы в XP работало. А работает? но не до конца. Т.е. нажимаю на кнопку, в кепшн пишется код возврата 1 (как и в 98) но раскладок на панельке по-прежнему 2(рус и англ). Права админа. Но: если по индикатору языков щёлкнуть правой кнопкой и войти в "параметры", то там французский есть. И если ничего не трогая нажать ок, то новая раскладка становится доступной для переключения. Т.е. чего-то ещё не хватает. Пробовал вариант
HKL r = LoadKeyboardLayout ("0000040C", KLF_ACTIVATE | KLF_REORDER);
Caption = IntToStr(r);
ActivateKeyboardLayout(r, 0);

никаких изменений.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.