![Autohotkey с горячими клавишами и горячими строками](https://rvso.com/image/1421892/Autohotkey%20%D1%81%20%D0%B3%D0%BE%D1%80%D1%8F%D1%87%D0%B8%D0%BC%D0%B8%20%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D1%88%D0%B0%D0%BC%D0%B8%20%D0%B8%20%D0%B3%D0%BE%D1%80%D1%8F%D1%87%D0%B8%D0%BC%D0%B8%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0%D0%BC%D0%B8.png)
Как разрешить запуск Hotstrings с помощью переназначенных горячих клавиш, чтобы они работали в Autohotkey?
r::Send e
::ee::by the way
Так что когда я нажимаю rr на клавиатуре, печатается «кстати».
В настоящее время он печатает это только при нажатии ee.
ПРИМЕЧАНИЕ: Мне бы хотелось найти решение, которое не требует назначения нескольких триггерных сокращений для расширения одной и той же строки.
решение1
Вы можете использовать #InputLevel, если используете AHK v1.1+http://ahkscript.org/docs/commands/_InputLevel.htm
::ee::by the way
#InputLevel, 1
r::Send e
решение2
Вместо этого используйте это:
r::Отправить {ASC 0101} ::ee::кстати ::rr::кстати
решение3
Вот код:
r::
Loop
{
b:=GetKeyState("r")
if (b !=1)
{
ccounter := 1
Loop
{
c:=GetKeyState("r")
if (c=1)
{
MsgBox, by the way
return
}
Sleep, 50
ccounter:= ccounter + 1
if (ccounter = 60)
{
return
}
}
}
}
return
rПри нажатии 2 раза всплывет окно сообщения "кстати" . Но время между 2 rнажатиями должно быть максимум 3 секунды. Вы можете настроить это время, изменив ccounter = 60
. Каждое значение там равно 50 миллисекундам (1000 миллисекунд = 1 секунде).
Также всегда используйте AutoHotkey и его документацию отhttp://ahkscript.org/(текущая обновленная версия, новый официальный сайт)! AutoHotkey и его документация с autohotkey.com устарели, и у вас могут возникнуть проблемы с их использованием!
решение4
Это будет работать:
:*:rr::
Goto ::ee
return
::ee::
Send by the way
return