1 (изменено: Irbis, 2013-04-07 16:57:09)

Тема: AHK: Не работают хоткеи с виртуальными кодами

Отлаживаю скрипт, где из INI файла считываются значения хоткеев, и затем по команде Hotkey задается действие.
При этом возникла проблема, что часть клавиш обрабатывается, а часть - нет.
Упростив до предела, обнаружил такую вещь: клавиши стрелок, а также PgUp, PgDn, Home и End обрабатываются, если они записаны как есть (Left, PgDn и т.д.),  а в виде виртуальных клавиш - только если они непрозрачны для системы (без "~") и только при одиночной клавише. То есть:

Работает

~Left:: MsgBox You pressed LEFT

Не работает

~vk25:: MsgBox You pressed LEFT

Работает

vk25:: MsgBox You pressed LEFT

Работает

Left & Right:: MsgBox You pressed LEFT and RIHGT

Не работает

vk25 & vk27:: MsgBox You pressed LEFT and RIHGT

Чем может быть вызвано такое поведение?

AHK_L 1.1.9.4 x64
Никаких скриптов больше не запущено.

2

Re: AHK: Не работают хоткеи с виртуальными кодами

Всё очень просто. vk коды этих кнопок совпадают с их собратьями с приставкой "Numpad", и АНК непонимает какая из них нажата только по vk коду.
Записывайте как например: Right - "vk27sc14D" а вот NumpadRight это"vk27sc4D".
А почему не используете имена кнопок? Так намного проще, и самому понятнее. Коды в АНК нужны только для символьных кнопок.

П.С.
Когда делал себе библиотеку для хоткеев, выявил эти:

                NumpadPgUp|NumpadDown|NumpadRight|NumpadLeft|NumpadUp|NumpadPgDn|NumpadEnd|NumpadHome|NumpadIns|NumpadEnter|NumpadDel|
                PgUp|Down|Right|Left|Up|PgDn|End|Home|Ins|Enter|Del|
                vk21|vk28|vk27|vk25|vk26|vk22|vk23|vk24|vk2D|vkD|vk2E|
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK: Не работают хоткеи с виртуальными кодами

Записывайте как например: Right - "vk27sc14D"

Поспешил не проверив:

vk25sc14B & vk27sc14D::MsgBox You pressed LEFT and RIHGT

Так тоже не работает.
А отдельно работает:

vk25sc14B::MsgBox You pressed LEFT


Хмм... и вот ещё что:

vk25::MsgBox You pressed LEFT

 
Работает. Хотя точно помню что раньше неработало.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4 (изменено: creature.ws, 2013-04-08 02:20:25)

Re: AHK: Не работают хоткеи с виртуальными кодами

На оф. форуме нашлось объяснение.
При использовании псевдонима Left | Right клавиша регистрируется по sc.

5

Re: AHK: Не работают хоткеи с виртуальными кодами

Работает:

sc14B & sc14D::MsgBox You pressed LEFT and RIHGT

Надо переходить на запись только по sc кодам.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6

Re: AHK: Не работают хоткеи с виртуальными кодами

Надо переходить на запись только по sc кодам.

Почему, зачем?

7

Re: AHK: Не работают хоткеи с виртуальными кодами

Почему, зачем?

Так ведь по sc кодам всё работает, а по vk не всё.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

8

Re: AHK: Не работают хоткеи с виртуальными кодами

serzh82saratov пишет:

Так ведь по sc кодам всё работает, а по vk не всё.

Бывает и наоборот. Подробностей уже не помню, но была пара случаев, когда замена sc на vk решила проблему.