在我的主要Autohotkey脚本中,我有几百个这样的热字符串:
:: fe ::例如
::˚F::和
:: fi ::例如
:: FO ::幸运
:: FOY ::幸运
:: GLO ::全球
:: gloy ::全球
::哈::有无
:: HV ::然而
通常手动触发热串(例如按下ALT-9)而不是按下并结束字符会很方便。有没有办法做到这一点?我在谷歌搜索中找不到任何东西,所以也许没有。但它会很有用。
我已阅读过hotstrings选项,例如:*:但这不是一样的 - 我想要正常的热字符串操作,但也可以选择手动强制它们根据需要触发。
答案 0 :(得分:2)
更新: 所以你实际上正在寻找的是使用ALT + 9作为结束角色。我不确定但你可能不会使用密钥组合(参见hotstring doc)。我现在想不出一个非常聪明的方法。您可以尝试类似
的内容::fe::gosub forExample
forExample:
send for example
return
你必须外包热线串体:
!9::gosub forExample
,然后你可以在某处定义一个热键:
::fe::something
如果你想变冷,请使用函数而不是子程序。
注意:
::fe::
send something
return
只是
的简短形式User:
- Name
- Email
- Avatar
Uploads:
- ImageURL
- User ID
- Time
答案 1 :(得分:2)
::fe::for example
::f::and
::fi::for instance
::fo::fortunate
::foy::fortunately
::glo::global
::gloy::globally
::ha::have
::hv::however
!8:: trigger_hotstring("fi")
!9:: trigger_hotstring("ha")
trigger_hotstring(hotstring){
Loop, Read, %A_ScriptFullPath%
{
If InStr(A_LoopReadLine, "::"hotstring "::")
{
SendInput, % StrSplit(A_LoopReadLine,"::"hotstring "::").2
break
}
}
}
答案 2 :(得分:1)
如果您使用AutoHotkey v1.1.06 +,则可以使用#InputLevel
::fe::for example
::f::and
; and so on
#InputLevel, 1 ; sending space will trigger hotstrings above this line
!F9::Send {space}
修改:
我现在看到你想要省略需要一些额外工作的结束字符
一种方法是使用其他选项复制热字串:
::fe::for example
:*O:fe_::for example ; duplicate the hotstrings like so
::f::and
::fi::for instance
::fo::fortunate
; and so on
#InputLevel, 1
!9::Send _
另一种方法是删除endchar
::fe::for example
::f::and
::fi::for instance
::fo::fortunate
; and so on
#InputLevel, 1
!9::
Send {space}
Sleep 100 ; give it time to expand the hotstring, experiment with timing
Send {bs} ; now remove trailing space
Return