autohotkey - 使用自动热键中的键发送现有修饰符?

标签 autohotkey

我正在尝试使用 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/

相关文章:

autohotkey - 什么时候应该在 Autohotkey 中使用 `Sent` 超过 `SentInput`?

escaping - 如何发送多个反引号

Autohotkey winclose 不起作用

autohotkey - 有没有办法将多行字符串分配给对象属性?

autohotkey - 如何停止事件的AutoHotkey脚本?

正则表达式:获取字符串中所有数字的编号捕获

罗技 k750 键盘上的 Autohotkey Fn 键重新映射

keyboard - 使用 autohotkey 在 Microsoft 设计器键盘中将表情符号键更改为 ctrl

autohotkey - 如何使用 Autoit/Autohotkey 模仿 Visual Studio 的 "Ctrl-K, C"两步宏行为?