KeyboardLayout аналогично раскладке стороннего приложения

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: KeyboardLayout аналогично раскладке стороннего приложени

Сообщение arthur2 » 09.09.2010 (Чт) 18:51

Twister писал(а):Ты в код примера смотрел вообще?
Дельфи для меня - иностранный :oops:

Twister писал(а):Как связаны активное окно и текущий поток?
Ну, если окно с данный момент активно, то оно принадлежит текущему потоку, разве нет?

Twister писал(а):Воспользовавшись ею, мы узнаем hWnd окна, имеющего фокус ввода и оно НЕ ОБЯЗАТЕЛЬНО будет принадлежать этому же потоку

То есть, окно с фокусом ввода для определенного потока может этому потоку и не принадлежать? Тады - да... хотя это как-то странно.
Артур
 
   

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: KeyboardLayout аналогично раскладке стороннего приложени

Сообщение Хакер » 09.09.2010 (Чт) 22:21

arthur2 писал(а):текущему потоку

В каком смысле?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: KeyboardLayout аналогично раскладке стороннего приложени

Сообщение Twister » 10.09.2010 (Пт) 7:56

Дельфи для меня - иностранный
Ключевые моменты примера написаны на Win32 API. Понимание API не может и не должно зависеть от языка.

Ну, если окно с данный момент активно, то оно принадлежит текущему потоку, разве нет?
Нет. Оно принадлежит тому потоку, который его создал.

То есть, окно с фокусом ввода для определенного потока может этому потоку и не принадлежать?
Совершенно верно. Именно такое окно создается в моём примере по нажатию на кнопочку.
А я все практикую лечение травами...

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: KeyboardLayout аналогично раскладке стороннего приложени

Сообщение arthur2 » 10.09.2010 (Пт) 19:45

Ок :D

Тады готовое универсальное решение приблизительно такое?:

Код: Выделить всё
GetGUIThreadInfo (GetWindowThreadProcessId(anyHwnd, 0), gui)
GetKeyboardLayout (GetWindowThreadProcessId(gui.hwndFocus))
:roll:
Артур
 
   

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: KeyboardLayout аналогично раскладке стороннего приложени

Сообщение Twister » 11.09.2010 (Сб) 7:54

Приблизительно да, совсем приблизительно. :)
А я все практикую лечение травами...

Пред.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17

    TopList