Autohotkey 使用自动热键进行Eval/RegExp侦听

Autohotkey 使用自动热键进行Eval/RegExp侦听,autohotkey,Autohotkey,我认为这一定是可能的,但我在autohotkey的文档中找不到它 我想做一些类似的事情: [a-z0-9]:: SoundPlay, %A_WinDir%\Media\[\1].wav SoundPlay *-1 i、 e.听所有a到z键和0-9键,找到相关的wav文件(a.wav等)并播放。如果找不到,则播放默认声音 这是AHK的联盟之外的路吗?我应该坚持用python做这个吗??! 我不知道如何使用正则表达式来指定热键,但我在其中一个脚本中就是这样做的: @:: a:: b:: c::

我认为这一定是可能的,但我在autohotkey的文档中找不到它

我想做一些类似的事情:

[a-z0-9]::
SoundPlay, %A_WinDir%\Media\[\1].wav
SoundPlay *-1 
i、 e.听所有a到z键和0-9键,找到相关的wav文件(a.wav等)并播放。如果找不到,则播放默认声音

这是AHK的联盟之外的路吗?我应该坚持用python做这个吗??!
我不知道如何使用正则表达式来指定热键,但我在其中一个脚本中就是这样做的:

@::
a::
b::
c::
; (all other alpha keys...)
    ; Pass key on, if not in subscription list
    If(in_edit_screen())
    {
        ; Handle caps lock
        If(GetKeyState("Capslock", "T"))
        {
            ; Send uppercase letter
            StringUpper key, A_ThisHotkey
            Send %key%
        }
        Else
        {
            Send %A_ThisHotkey%
        }
        Return
    }
    ; etc.
    Return
这是一个例程的一部分,每当某个窗口被聚焦时调用该例程,但该窗口有几个不同的模式;在其中一种模式下(由编辑屏幕中的
标志指示),我只想让按键通过,而在另一种模式下,我想让按键做一些特殊的事情
A_this热键
是一个变量,它告诉例程用户实际按下的键/键组合。

您可以使用将所有可能的热键分配给标签

这里的第一个循环使用一个技巧,将值转换为它们的值,进行数学运算,然后将它们转换回字符。该逻辑的工作原理类似于“a'之后的第五个字符是什么?”——它会回答'f'

#Persistent 

Loop, 26
  Hotkey, % Chr(Asc("a") + A_Index - 1), MyLabel

Loop, 10
   Hotkey, % A_Index - 1, MyLabel
return

MyLabel:
MsgBox You pressed %A_ThisHotkey%
return

为什么不在您使用的地方启动脚本:

输入,CI_KeyVar,I L1

然后读取按下的键(variable=CI_KeyVar),执行您的操作(检查ascii码是否介于0和Z之间,因为此输入将作用于任何输入),然后重新启动脚本以等待下一次按键


解决方法是触发esc键,这样脚本就会停止。

。我忘了注意到我把每封信都单独列了出来。