我正在尝试使用 Send 命令发送按下的修饰符,我想出的唯一方法是将它们全部列出:
; (Note: I've remapped using registry the Capslock as F13)
F13 & h::
if GetKeyState("Control") && GetKeyState("Shift") {
Send +^{Left}
return
}
if GetKeyState("Control") {
Send ^{Left}
return
}
if GetKeyState("Shift") {
Send +{Left}
return
}
Send {Left}
return
在 Windows 中,如果您按 ctrl+left 它会向左跳一个单词,如果我按 ctrl+shift+left 它会向左选择一个单词。同样,我想像上面的例子一样发送现有的修饰符,但有没有更简单的方法?伪代码:
F13 & h::Send {CurrentlyPressedModifiers}{Left}
最佳答案
您可以使用发送、{Blind} 模式执行此操作。例子:
*a::Send, {Blind}{Left}
*
接受 a 的所有修饰符,{Blind} 将修饰符传递给 Send
命令。或者,您可以避免发送和使用:
a::Left
这里所有的修饰符都会自动传递给 Left
命令。注意:据我在测试后看到,这两种解决方案都不适用于“您的”组合键,只能使用标准热键。
因此,除非您将组合键改回标准热键,否则您的初始解决方案可能是唯一的解决方案。
关于autohotkey - 使用自动热键中的键发送现有修饰符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15380171/