Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2015, 11:38   #1
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию Получить раскладку клавиатуры.

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

Делаю вот так:
Код:
IntPtr activeWindowHandle = GetForegroundWindow();
uint lpdwProcessId = 0;
uint id = GetWindowThreadProcessId(activeWindowHandle, out lpdwProcessId);
IntPtr hKL = GetKeyboardLayout(id);
hKL = (IntPtr)(hKL.ToInt32() & 0x0000FFFF);

CultureInfo CI = new CultureInfo(hKL.ToInt32());
Активное приложение cmd.exe
если найти процесс по lpdwProcessId то он указывается правильно.
Ввожу туда латинские символы. В трее винда пишет что язык EN а функция в программе упорно показывает RU.
Что не так то??
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 28.09.2015, 11:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
В трее винда пишет что язык EN
А при этом какое окно активно? - Твое или того процесса, который ты ловишь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.09.2015, 11:55   #3
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А при этом какое окно активно? - Твое или того процесса, который ты ловишь?
У этой проги окна нету. Активное окно это консолька. То есть активное окно это всегда чужое.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 28.09.2015, 12:00   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А ты как проверяешь свою прогу? В отладчике?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.09.2015, 12:02   #5
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А ты как проверяешь свою прогу? В отладчике?
Останавливаю в отладчике уже после того как хаваю хендл. Я же написал что если найти по айдишнику процесс то нахожу именно смд а не студийный процесс.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 28.09.2015, 12:04   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,964
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А ты как проверяешь свою прогу? В отладчике?
При чём тут прога? DWOPD в помощь, если речь идёт о винде.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 28.09.2015, 12:07   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Останавливаю в отладчике уже после того как хаваю хендл.
Ну так правильно - Отладчик переводит раскладку в ту, что была задействована в нем, потому ты в трее и видишь ее.
Ты попробуй в файл выводить раскладку дабы не было перескока между окнами, и посмотри - все должно быть как полагается.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.09.2015, 12:10   #8
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

В студии если что тоже EN.
я же говорю что точка останова стоит уже после всех действий.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 28.09.2015, 12:15   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

А-а-а... Я походу недопонял - у тебя в консоли выставлен EN?
Я думал там RU включен. Сорри
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.09.2015, 12:21   #10
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
При чём тут прога? DWOPD в помощь, если речь идёт о винде.
И чего с ним делать?
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сменить раскладку клавиатуры YourLastSong Общие вопросы C/C++ 1 17.12.2011 15:16
Менять раскладку клавиатуры програмно Dark_Wolf Общие вопросы Delphi 0 07.11.2011 00:52
Изменить язык ввода (раскладку клавиатуры) при получении фокуса полем SMShrek Microsoft Office Access 4 04.07.2011 09:42
Вывести на канву раскладку клавиатуры phphel Общие вопросы Delphi 7 06.04.2011 13:02
Переключить раскладку клавиатуры. SKYLINEGTR Помощь студентам 2 02.02.2011 00:50