AHK |防止在“无空间”热字串后重置热字符串计数

时间:2018-05-06 22:34:12

标签: autohotkey

我使用一些热字符串:o:选项或手动发送{bs}用于其他目的。
在这两种情况下,如果我想要添加到前一个热字符串末尾的字符串恰好是一个热字符串本身,它将触发热字符串!
如何防止这种情况?
例如:
:o:ahk::AutoHotKey
=> ahk + space + ahk应该是:“AutoHotKeyahk”,而是得到:“AutoHotKeyAutoHotKey”

注意:如果背后的文字不是热键,它不会再次触发 AutoHotkey + ahk => AutoHotkeyahk

另外一般情况下,如果知道如果某些字母实际位于光标后面,如何使热字符串更加清晰,即使由于各种原因它未在keycount中正确注册,也可以防止热字串在不正确的上下文中出现故障。

1 个答案:

答案 0 :(得分:0)

所以我尝试了各种方法并遇到了几个错误/错误 最后,我有一种在所有测试环境下都能可靠运行的方法 我会发布代码...如果你有的话可以随意发布一个更好/更优雅的代码。

IsModifier:=1
#inputlevel 1
SendLevel 1
LAlt & space up::
{
        SendInput,{space}
        sleep 50
        SendInput,{bs}
        IsModifier:=0
        Loop
        {
            Sleep,10
            if (GetKeystate("Enter") = 1) or (GetKeystate("?") = 1) or (GetKeystate(".") = 1) or (GetKeystate("Space") = 1)
            {
                break
            }
        }
        IsModifier:=1
return
}
#if (Ismodifier=1)
#inputlevel 0
#Include GeneralHotStrings.AHK