#autohotkey
#автоотключение
Вопрос:
На одной из моих клавиатур есть клавиша Shift большего размера, где обычно находится моя клавиша канала / обратной косой черты. Есть ли способ сопоставить Shift-Shift в AutoHotkey (т. Е. Нажаты обе клавиши Shift), чтобы я все еще мог вводить каналы ( |
) так, как я бы делал с другими моими клавиатурами? Я пробовал просто
, но это, похоже, соответствует Shift-
.
Комментарии:
1. Не уверен, имеете ли вы в виду просто сдвиг влево и вправо, или этот «большой сдвиг» является чем-то более особенным. Если это какая-то специальная клавиша, вы можете попытаться получить ее код сканирования (SC) или код виртуальной клавиши (VK). Вот, вероятно, достаточно приличный учебник для этого: jacks-autohotkey-blog.com/2016/04/14 /…
2. Да, я просто имею в виду сдвиг влево и вправо. Это клавиатура США, и я обычно использую клавиатуры с раскладкой в Великобритании.
Ответ №1:
Благодаря комментарию @0x464e я смог найти коды виртуальных клавиш (VKS) для сдвига влево и вправо с помощью:
- Добавление
::Send {U 007C}
в мой скрипт ahk (справа от::
здесь не имеет значения, это просто для того, чтобы Shift отображался в истории клавиш) - Щелкните правой кнопкой мыши сценарий в системном трее, нажмите Открыть, выберите «История клавиш» на вкладке «Просмотр».
- Введите
Shift-
несколько раз с каждой клавишей Shift в текстовом редакторе. - Нажмите F5 в окне Истории клавиш и считайте значения виртуальной клавиши для сдвига влево и сдвига вправо (
VKA0
иVKA1
соответственно в моем случае).
Затем я добавил следующие правила в свой скрипт ahk для отправки канала всякий раз, когда я удерживал правую клавишу Shift и нажимал левую клавишу Shift:
VKA1 amp; VKA0::Send {U 007C}
Комментарии:
1. Хороший материал, и чтобы иметь возможность просматривать историю клавиш, ваш скрипт может просто содержать
#InstallKeybdHook
и ничего больше. Это то, что добавление горячей клавиши сделало бы под капотом. Кроме того, поскольку мы говорили только о сдвиге влево и вправо, а не о чем-то особенном, вас должно устраивать простоRShift amp; LShift::SendInput, |
(SendInput
рекомендуемый режим отправки, но не похоже, что это будет иметь какое-либо значение на практике в этом конкретном сценарии)