узнать, какая раскладка клавы сейчас стоит
От: Аноним  
Дата: 28.05.04 14:31
Оценка:
Собственно вопрос.

Вот есть консольное приложение в WinXP, и хочеться мне узнать, какая раскладка клавы сейчас стоит?
ну типа EN || RU? есть соображения? не из под консольных могу, а вот с консолью че-то не хотит падла.

кстати, функции API
GetKeyboardLayout() 
GetKeyboardLayoutName()

не канают, ну не возвращают они в консоли правильный результат!
Re: узнать, какая раскладка клавы сейчас стоит
От: Аноним  
Дата: 28.05.04 16:40
Оценка:
Че? Никто не знает??? ау! млин.
Re[2]: узнать, какая раскладка клавы сейчас стоит
От: rus blood Россия  
Дата: 28.05.04 17:14
Оценка: :)
Здравствуйте, Аноним, Вы писали:

А>Че? Никто не знает??? ау! млин.


Все уже давно пьяные в стельку под столами валяются...
Имею скафандр — готов путешествовать!
Re[3]: узнать, какая раскладка клавы сейчас стоит
От: Аноним  
Дата: 29.05.04 06:36
Оценка:
Здравствуйте, rus blood, Вы писали:
RB>Все уже давно пьяные в стельку под столами валяются...
Дак что же это за безобразие-то такое. Эээ-эх! я весь MSDN облазил, и там и сям, черт...
если кто-то знает, скажите. \волшебное слово\ Плиииизззззз.
Re: узнать, какая раскладка клавы сейчас стоит
От: Аноним  
Дата: 31.05.04 07:53
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Собственно вопрос.


А>Вот есть консольное приложение в WinXP, и хочеться мне узнать, какая раскладка клавы сейчас стоит?

А>ну типа EN || RU? есть соображения? не из под консольных могу, а вот с консолью че-то не хотит падла.

А>кстати, функции API

А>
GetKeyboardLayout() 
А>GetKeyboardLayoutName()

А>не канают, ну не возвращают они в консоли правильный результат!

Верно, они всегда одно и то же возвращают. По-моему, надо, как много лет назад, клавиатурный драйвер, работающий в консоли, изучить. Он должен висеть на int9/int16
Re[4]: узнать, какая раскладка клавы сейчас стоит
От: Аноним  
Дата: 01.06.04 04:22
Оценка:
Поднимаю тему вверх, т.к. не могу найти решения. Облазил уже многое.
Люди добрые, ну хоть совет дайте какой-нить, не могу из консоли узнать
какая раскладка активная, RU или EN???
Re[5]: узнать, какая раскладка клавы сейчас стоит
От: fonarick  
Дата: 19.08.04 08:19
Оценка:
А>Поднимаю тему вверх, т.к. не могу найти решения. Облазил уже многое.
А>Люди добрые, ну хоть совет дайте какой-нить, не могу из консоли узнать
А>какая раскладка активная, RU или EN???

char keybd[KL_NAMELENGTH];
GetKeyboardLayoutName(keybd);
switch(atoi(keybd))
{
case 409:
lblLang->Caption = "EN"; // английский
break;
case 419:
lblLang->Caption = "RU"; // русский
break;
}
Re[6]: узнать, какая раскладка клавы сейчас стоит
От: Константин http://flint-inc.ru/
Дата: 24.03.06 20:54
Оценка:
Здравствуйте, fonarick, Вы писали:

F>char keybd[KL_NAMELENGTH];

F> GetKeyboardLayoutName(keybd);
F> switch(atoi(keybd))
F> //...

В свою очередь поднимаю тему вверх, ибо ничего из вышеприведённого не работает. Пишу свою прожку-переключалку клавиатуры, и такой вот затык с консолью — ни получение текущей раскладки, ни переключение раскладки на другую не работают. С переключением ещё кое-как исхитрился через WM_INPUTLANGCHANGEREQUEST, но вот как определить текущую раскладку — совершенно непонятно. Ни один из вышеприведённых способов не работает — все как один сообщают, что раскладка английская, независимо от того, какая она на самом деле. Неужто вообще не существует никакого способа это узнать?
Почему же, ё-моё, ты нигде не пишешь «ё»?
Re: узнать, какая раскладка клавы сейчас стоит
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 11.05.09 07:01
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Собственно вопрос.


А>Вот есть консольное приложение в WinXP, и хочеться мне узнать, какая раскладка клавы сейчас стоит?

А>ну типа EN || RU? есть соображения? не из под консольных могу, а вот с консолью че-то не хотит падла.

А>кстати, функции API

А>
GetKeyboardLayout() 
А>GetKeyboardLayoutName()

А>не канают, ну не возвращают они в консоли правильный результат!

Вот такое нагуглилось:

"Вешается системный хук WH_SHELL (HSHELL_LANGUAGE)"

подробностей там не было.
The God is real, unless declared integer.
Re: узнать, какая раскладка клавы сейчас стоит
От: Аноним  
Дата: 11.05.09 07:54
Оценка:
А>Вот есть консольное приложение в WinXP, и хочеться мне узнать, какая раскладка клавы сейчас стоит?
А>ну типа EN || RU? есть соображения? не из под консольных могу, а вот с консолью че-то не хотит падла.
А>кстати, функции API
А>
GetKeyboardLayout() 
А>GetKeyboardLayoutName()

А>не канают, ну не возвращают они в консоли правильный результат!
Консольное окно реально принадлежит другому процессу (csrss) и потоку (а GetWindowThreadProcessId на него на самом деле безбожно врут). Отсюда видимо и такой баг.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.