我认为这一定是可能的,但我无法在 autohotkey 的任何地方的文档中找到它
我想做类似的事情:
[a-z0-9]::
SoundPlay, %A_WinDir%\Media\[\1].wav
SoundPlay *-1
即听所有键 a 到 z 和 0-9 找到相关的 wav 文件(a.wav 等)并播放它。如果找不到 播放默认声音。
这是出AHK的联盟吗?我应该坚持在python中这样做吗??!提前谢谢了
我认为这一定是可能的,但我无法在 autohotkey 的任何地方的文档中找到它
我想做类似的事情:
[a-z0-9]::
SoundPlay, %A_WinDir%\Media\[\1].wav
SoundPlay *-1
即听所有键 a 到 z 和 0-9 找到相关的 wav 文件(a.wav 等)并播放它。如果找不到 播放默认声音。
这是出AHK的联盟吗?我应该坚持在python中这样做吗??!提前谢谢了
您可以使用热键命令将所有可能的热键分配给标签。
这里的第一个循环使用了一个技巧,将值转换为它们的ASCII 码,进行数学运算,然后将它们转换回字符。逻辑是这样的, “ 'a'之后的第 5 个字符是什么?” - 它回复'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
我不知道使用正则表达式指定热键的方法,但这就是我在我的一个脚本中所做的:
@::
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
这是当某个窗口聚焦时调用的例程的一部分,但有问题的窗口有几种不同的模式;在其中一种模式下(由in_edit_screen
标志指示),我只想通过键,而在另一种模式下,我希望键做一些特别的事情。A_ThisHotkey
是告诉例程用户实际按下哪个键/键组合的变量。
为什么不在您使用的地方启动脚本:
输入,CI_KeyVar,I L1
然后读出按下了哪个键(变量= CI_KeyVar),做你的事情(检查ascii代码是否在0和Z之间,因为这个输入将作用于任何输入)并重新启动脚本以等待下一个键按....
出路将是触发例如 esc 键,因此脚本停止。