Как правильно применить kbdLayout()?

Здесь обсуждается всё, что касается макросов.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 8 times

Re: Как правильно применить kbdLayout()?

Post by sToLp » Tue 09 Aug, 2011 21:31

Latest post of the previous page:

Поправил оформление поста, публикующего макрос .
Skirda wrote:надо бы в примеры в Писание поместить
ни чего не имею против
или будут улучшалки?
в примере лучше показывать штатный префикс плагина
или копирайт не позволяет?
для себя «(с)» интерпретирую так: «не Фар дал, сам ковал», и поэтому всё помеченное маркой «(sToLp)» можете употреблять как Вам только заблагорассудится
kbdLayout возвращает значение раскладки, включенной в данный момент.
1. Сейчас Eng
2. Набираем ghbdtn
3. Переключаем раскладку на Rus
4. вызываем макрос
каков результат?
Wave в целом верно ответил на этот вопрос. То есть, по моему, kbdLayout() достаточно обеспечивает функциональность макроса. Однако, если намекнёте как можно сделать более строго – попробую с удовольствием.

User avatar
John Doe
Бюрократ
Posts: 12457
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 188 times

Как правильно применить kbdLayout()?

Post by John Doe » Mon 11 Dec, 2017 23:46

В документации сказано, что для переключения в русскую раскладку следует использовать 0x0419 или 0x04190419.
По факту в моей системе эти значения ничего не делают, а русской раскладке соответствует 0xffffffffa0000419.

Кто виноват и что делать?

KlepetoX
Posts: 117
Joined: Sun 08 Jan, 2012 08:23
Location: Czech Republic
Been thanked: 1 time

Как правильно применить kbdLayout()?

Post by KlepetoX » Sat 16 Dec, 2017 12:18

I have this note with my switching keyboard macro and it works:

Switching keyboards needed these registry setting (old console):
[HKEY_CURRENT_USER\Console]
ForceV2=dword:00000000

User avatar
John Doe
Бюрократ
Posts: 12457
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 188 times

Как правильно применить kbdLayout()?

Post by John Doe » Sat 16 Dec, 2017 13:48

That registry setting is for Windows 10, but my system is 8.1.

I think the problem is that my keyboard layout is custom, see Правый Alt не работает в русской раскладке

User avatar
zg
zero-gravity
Posts: 5612
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 100 times
Contact:

Как правильно применить kbdLayout()?

Post by zg » Sat 16 Dec, 2017 17:09

The return value is the input locale identifier for the thread. The low word contains a Language Identifier for the input language and the high word contains a device handle to the physical layout of the keyboard.
т.е. для русского языка младшее слово будет всегда 0x419, а старшее будет зависеть от конкретной раскладки. а код в фаре странный.

Post Reply

Return to “Обсуждение макросов”