1

Как я могу позволить Hotstrings быть вызванными переназначенными горячими клавишами, чтобы они работали в Autohotkey?

r::Send e
::ee::by the way

Так что, когда я нажимаю rr на клавиатуре, он печатает "кстати".

В настоящее время он печатает только при нажатии ee.

ПРИМЕЧАНИЕ. Мне бы хотелось, чтобы решение, которое не предусматривало назначения нескольких сокращений запуска, расширялось до одной и той же строки.

5 ответов5

2

Вы можете использовать #InputLevel, если вы используете AHK v1.1+ http://ahkscript.org/docs/commands/_InputLevel.htm

::ee::by the way
#InputLevel, 1
r::Send e
0

Используйте это вместо:

r::Send {ASC 0101}
::ee::by the way
::rr::by the way
0

Использование * с горячей строкой означает, что он не будет ждать пробела / символа табуляции перед заменой. Это также позволяет нескольким горячим строкам совместно использовать одно определение.

r::Send e

:*:ee::
:*:rr::
  Send by the way
  Return
0

Вот код:

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

Появится всплывающее окно с сообщением "кстати", когда г нажата 2 раза. Но время между 2 г прессами должно быть максимально 3 секунды. Вы можете настроить это время, изменив ccounter = 60 . Каждое значение составляет 50 миллисекунд (1000 миллисекунд = 1 секунда).

Кроме того, всегда используйте AutoHotkey и его документацию с http://ahkscript.org/ (текущая версия обновления, новый официальный сайт)! AutoHotkey и его документация от autohotkey.com устарели, и у вас могут возникнуть некоторые проблемы с их использованием!

-2

Это будет работать:

:*:rr::  
Goto ::ee  
return  
::ee::  
Send by the way  
return

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .