Autohotkey 多个热键映射到同一功能

问题描述 投票:0回答:2

我有几个热键,它们都做同样的事情,我有多个热键,所以我可以在我的手当时在的任何地方调用它们,并且可以在多个键盘上使用,例如:

#]::Send {Media_Next}
XButton2 & RButton::Send {Media_Next}
SC15D & ]::Send {Media_Next}

有什么方法可以将这些东西组合到一行中,而不必到处重复自己?

autohotkey
2个回答
4
投票

一行中的多个热键定义是不可能完成的,至少在没有真正的黑客的情况下是不可能的。
尽管如此,还是有一些方法可以简化你的脚本:

方法一:“滴流热键”

这是为多个热键分配相同功能的最简单、最直接的方法。它的工作原理是简单地将热键写在另一个下面,仅分配最后一个热键一个或多个命令:

#]::
XButton2 & RButton::
SC15D & ]::Send {Media_Next}

方法二:动态创建热键

使用

Hotkey
命令,您可以在运行时为热键分配标签。这意味着,它们可以循环使用:

for i, keyName in ["#]", "XButton2 & RButton", "SC15D & ]"]
    Hotkey, % keyName, SendMediaNext

Exit

SendMediaNext: 
    Send {Media_Next}
return

在运行时创建的热键的性能不如硬编码热键,但在大多数情况下,您不会注意到差异。我仍然会选择方法 1,因为它更具可读性。


0
投票

再多一点,例如我多次重复组合 Capslock & a,Capslock & b...Capslock & z 而不是按 Capslock 键并多次输入:

对于 i,keyName in ["Capslock & a", "Capslock & b",..., "Capslock & z"]

有什么办法更快吗?

© www.soinside.com 2019 - 2024. All rights reserved.