Page 1 of 3

flock() Сочетания клавиш с Caps/Num/Scroll-локами

Posted: Mon 15 Oct, 2007 16:24
by DrKnS
Ну если уж пошла такая пьянка...
Макросы на Ctrl-CapsLock и Ctrl-NumLock отображаются как Ctrlи Ctrlсоответственно.
Так и задумано?

Posted: Tue 16 Oct, 2007 07:27
by Skirda
Хмм... сроду не думал, что такое сочетание будет применимо :-)
...посему в коде нет и обработки этих кнопкосочетаний.
А оно кому надо?

Posted: Tue 16 Oct, 2007 07:38
by Skirda
CtrlNumLock и CtrlCapsLock (или CtrlAltCapsLock) - так?

Правда CtrlNumLock дает

Code: Select all

KEY_EVENT_RECORD: Dn, 1, Vk="VK_PAUSE" [19/0x0013], Scan=0x0045 uChar=[U=' ' (0x0000): A=' ' (0x00)] Ctrl=0x00000168 (Casac - EcNS)

Posted: Tue 16 Oct, 2007 07:40
by wolf
Skirda wrote:А оно кому надо?
Ну если макрос туда можно повесить, ион работает - то лучше всё-таки внятно писать - куда же повесили :)

ps: сгодится.

Posted: Tue 16 Oct, 2007 07:43
by DrKnS
Skirda wrote:Хмм... сроду не думал, что такое сочетание будет применимо
Случайно нажал :-)
...посему в коде нет и обработки этих кнопкосочетаний.
Думаю, стоит или запретить, или доделать. Ввиду того, что оно уже работает - более логичным выглядит второй вариант.
А оно кому надо?
Кнопок много не бывает. :-)

Posted: Tue 16 Oct, 2007 07:52
by Skirda
Хмм...
Pause тоже ресолвить?
(сейчас ОНО не делает своего названия и в макросах тоже не отображается)

Posted: Tue 16 Oct, 2007 12:37
by Skirda
Pause.
Как делать?
1. Pause == "Pause", модификаторы+Pause == "модификаторы+Break" (кроме Ctrl+Pause, он == "Break" и Ctrl+Shift+Pause, на который, естественно ФАР не реагирует ;-))
2. Или Ctrl+Pause == "Break", остальное "модификаторы+Pause" (кроме Ctrl+Shift+Pause)

NumLock.
Модификаторы+NumLock - здесь комбинация гасит/включает NumLock (кроме Ctrl+NumLock, он не влияет на включение/выключение режима). Пофигу?

CapsLock
Ctrl+Shift+CapsLock ничего не делает.
Остальные включают/гасят CapsLock. Пофигу?

Posted: Tue 16 Oct, 2007 13:01
by DrKnS
Pause.
По идее, надо по аналогии с другими местами - модификатор не меняет имени клавиши, т. е. 2-й вариант.

Модификаторы с NumLock & CapsLock - а что, существует возможность в этих случаях режим не переключать? Если да, это было бы предпочтительнее.

Posted: Tue 16 Oct, 2007 15:26
by Skirda
DrKnS wrote:Pause.
По идее, надо по аналогии с другими местами - модификатор не меняет имени клавиши, т. е. 2-й вариант.
Ctrl+Pause == "Break", остальное "модификаторы+Pause"?
DrKnS wrote:Модификаторы с NumLock & CapsLock - а что, существует возможность в этих случаях режим не переключать? Если да, это было бы предпочтительнее.
http://msdn2.microsoft.com/en-us/library/ms646304.aspx
Правда это опять через очередь клавиатурную... забубенный обработчик получается...
Лучше добавить в макросы нечто вроде FLock(NumLock|ScrollLock|CapsLock, NewState)

Posted: Tue 16 Oct, 2007 16:06
by DrKnS
Ctrl+Pause == "Break", остальное "модификаторы+Pause"?
Да.
Лучше добавить в макросы нечто вроде FLock(NumLock|ScrollLock|CapsLock, NewState)
Можно и так, при условии, что состояние можно не только выставить, но и получить, например, при NewState=-1.

ScrollLock (и сам, и с модами) тоже будет?

Posted: Tue 16 Oct, 2007 16:43
by Skirda
DrKnS wrote:ScrollLock (и сам, и с модами) тоже будет?
По живому, гад, режешь :D

Ок. Только...
На "Модификатор+FLock" можно повесить макрос, но на просто "FLock" - нет. Плюс нельзя повесить макро на "Ctrl+Shift+CapsLock", "Ctrl+Shift+Pause" (по независимым причинам)

Posted: Tue 16 Oct, 2007 17:13
by DrKnS
:)
Плюс нельзя повесить макро на "Ctrl+Shift+CapsLock"
Почему? Оно даже сейчас работает:
Image

Posted: Tue 16 Oct, 2007 17:27
by Skirda
хмм... как то у меня не получается...
даже в лог ничего не садится...

Posted: Wed 17 Oct, 2007 07:07
by jbak
У меня срабатывает Ctrl+Shift+CapsLock, но CapsLock тем не менее включается/выключается.

Posted: Wed 17 Oct, 2007 07:15
by Denis
У меня CtrlShift-CapsLock срабатывает только если отключить переключалку языков, которая висит на CapsLock.
А переключение языков на CapsLock работает только если в реестре прописано такое (вроде тут что-то меняет IE7):
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IMM]
"LoadIMM"=dword:00000000

WinXP