У меня есть довольно простая идея, с которой я думаю, AutoHotKey мог бы помочь мне. По сути, когда я использую ctrl-v для вставки, я хочу, чтобы он передавал второй ctrl-v, чтобы я вставлял дважды. У меня есть несколько сочетаний клавиш в моей среде разработки, настроенных на двойное нажатие различных нажатий клавиш ctrl, поэтому я также хотел бы иметь возможность расширить сценарий и на другие клавиши помимо ctrl-v. Хотя это мой первый скрипт AutoHotKey, и мне трудно оторваться от земли, потому что здесь есть много чего переварить. Спасибо!
1 ответ
В AutoHotkey двойная отправка ключа довольно проста.
#IfWinActive
~^v::SendInput, ^v
Несколько дополнительных предметов:
1) Вы можете настроить, какие программы будут получать двойную отправку или нет, используя #IfWinActive
и назначая имя окна, имя exe, класс и т.д. Для WinTitle
2) Тильда в определении горячих клавиш означает, что сценарий не останавливает исходное нажатие клавиши. Если вы хотите получить полный контроль над тем, проходит ли оригинал или нет, вы можете удалить тильду (которая будет блокировать исходное нажатие клавиши), а затем отправить ее дважды самостоятельно (или не делать вообще, или все, что вы захотите сделать без исходного нажатия клавиши). регистрация).
3) При необходимости вы можете добавить задержку, расширив функцию до более чем простого определения горячей клавиши и используя оператор Return
4) Вы можете использовать один и тот же код для нескольких горячих клавиш, используя A_ThisHotkey.
5) Вы также можете разрешить нажатия клавиш с несколькими модификаторами, используя модификатор *, если это необходимо. Это может работать не совсем правильно с приведенным ниже примером кода, но просто кое-что, о чем нужно знать.
Пример вышеперечисленных пунктов 1-4:
; this will execute the code to send duplicate keystrokes
; for any of the hotkeys defined, in this case, a,b,c, or Ctrl+V
#IfWinActive ahk_exe notepad.exe
~a::
~b::
~c::
~^v::
Sleep 200 ; Possibly use or adjust for reliability if needed
SendInput % SubStr(A_ThisHotkey, 2) ; Remove tilde and send duplicate keystrokes for whichever hotkey executed
Return