AHK if 语句 - 运行 指令基于按下的组合键

AHK if statement - run instruction based on key combination pressed

有没有办法将下面的常用指令组合成一套代码?即,如果按下 ctrl-m,则键入分钟,否则如果按下 ctrl-s,则键入秒。

感谢您的帮助。

^m::
WinActivate menu
Click, 100, 50
sleep 200
Send minutes; typing into input field
sleep 200
Click, 100, 100; clicking button opens application called minutes
return

^s::
WinActivate menu
Click, 100, 50
sleep 200
Send seconds; typing into input field
sleep 200
Click, 100, 100; clicking button opens application called seconds
return

您可以为同一段代码定义多个不同的热键 运行 然后您可以通过检查 A_ThisHotkey.

来判断使用了哪个热键
^m::
^s::
    if(A_ThisHotkey = "^m")
        variable := "minutes"
    else
        variable := "seconds"
    WinActivate, menu
    Click, 100, 50
    Sleep, 200
    SendInput, % variable ;typing into input field
    Sleep, 200
    Click, 100, 100 ;clicking button opens application called minutes
return

请注意,我们正在尽快检查 A_ThisHotkey 的值,因此我们一定会得到正确热键的值,而不是其他可能中断当前热键的热键线程(按照文档中的建议)。
也切换到 SendInput 因为它更快更可靠。


作为奖励,如果您想要更紧凑的代码,请将 if-else 语句替换为三元语句:

variable := A_ThisHotkey = "^m" ? "minutes" : "seconds"