Это рабочий скрипт autohotkey. он генерирует подсказки из горячих строк. Я хочу, чтобы всплывающая подсказка появлялась после ввода двух букв. Пожалуйста, измените сценарий, так как я не могу этого сделать.

Loop, Read, %A_ScriptFullPath%
If RegExMatch(A_LoopReadLine,"^\s*:.*?:(.*)", line) ; gathers the hotstrings
hs.= line1 "`n"

Loop {
Input, out,V L1, {BS}
If out in ,,,`t,`n, ,.,?,! ; hotstring delimiters
ToolTip % str:= ""
else
ToolTip % RegExReplace(hs,"m`a)^(?!\Q" (str.= out) "\E).*\n" )
}

~BackSpace:: StringTrimRight, str, str, 1

::xnc::eccentric
::xnt::excellent
::xps::expertise

1 ответ1

0

Вам нужно проверить длину напечатанной строки - в этом случае переменную str - вы можете сделать это с помощью команды http://ahkscript.org/docs/commands/StringLen.htm - изменения были внесены в раздел ELSE сценария ниже.

Loop, Read, %A_ScriptFullPath%
If RegExMatch(A_LoopReadLine,"^\s*:.*?:(.*)", line) ; gathers the hotstrings
hs.= line1 "`n"

Loop {
    Input, out,V L1, {BS}
    If out in ,,,`t,`n, ,.,?,! ; hotstring delimiters
        ToolTip % str:=""
    else
        {
         str.=out
         if (StrLen(str) > 1) ; means 2 or more, so if you want the tooltip to appear after 4 characters it will be > 3
            ToolTip % RegExReplace(hs,"m`a)^(?!\Q" (str) "\E).*\n" )
        }
     }

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