【问题标题】:What're the key codes for "Alt+Q Alt+Q"?“Alt+Q Alt+Q”的键码是什么?
【发布时间】:2021-10-20 17:28:42
【问题描述】:

我想创建一个脚本,在按住 Alt 的同时按两次 Q 时触发,但不知道什么是正确的键码,可以有人请解释一下吗?

附:我想把这个快捷键绑定到Ctrl+F12,我分配Sogou IME打开中文输入模式。

【问题讨论】:

    标签: scripting autohotkey


    【解决方案1】:

    我没有对此进行测试,可能有更简洁的方法可以做到这一点,但我认为这样的事情应该可以工作。

    !Q::
    If(keyPressed = 1){
       ...Do a thing...
    }
    keyPressed := 1
    SetTimer, altQTimer, 50
    return
    
    altQTimer:
    keyPressed := 0
    return
    

    【讨论】:

    • 谢谢,但这对我不起作用,我意识到关键的大小写敏感可能很重要?我已将我的问题从Q 更新为q。为了更容易调试,你能告诉我如何在Alt+q上触发命令吗?更好的是,不区分大小写?
    • "!"意思是 alt,所以基本上你在 "​​!Q::" 之后的任何东西都会在你按下 ALT+Q 时被触发。并且该子程序将在返回时停止。 autohotkey.com/docs/Hotkeys.htm 定时器可能太快太 idk,50 表示 50 毫秒
    • 谢谢,我做了一些测试,发现按键默认不区分大小写,但是Q::Send ^{F12} 在按下Q 时对我有效,而!Q::Send ^{F12} 在按下Alt 时不起作用+Q,你知道为什么吗?
    • 很奇怪,我不知道为什么。我刚刚测试过,它确实对我有用。我还测试了上面的代码是否可以双击,它也可以正常工作,尽管 50 太快了。 200-250比较合理。文档有以下关于使用 ALT 的说明:Pressing a hotkey which includes Alt may result in extra simulated keystrokes (Ctrl by default). See #MenuMaskKey. 我猜也许它实际上是用 CTRL+ALT 代替的?不确定这是否有帮助。
    • !Q::SendInput foo 将插入foo,但!Q::Send ^{F12} 什么都不做,很奇怪,不过,我会支持你的答案。
    【解决方案2】:

    TL;DR

    总之,即使我做了各种 hack 并让脚本按预期工作,它也可能在未来崩溃,这真的不值得麻烦。


    经过几个小时的实验,目前的结论是Sogou IME 使用 Ctrl+F12 不会触发绑定动作即切换到中文输入模式由Alt+[Any Other Key]发送,可以由其他快捷键如Ctrl+C,真是可惜了。

    最奇怪的是下面的代码有效:

    ^c::Send !q
    !q::Send ^{F12}
    

    为了排除潜在的extra simulated keystrokes (Ctrl by default) 影响,下面的代码也有效:

    ^!q::Send ^{F12}
    

    但以下不是(在多台机器上测试过):

    !q::Send ^{F12}
    

    更新

    经过much的努力,我确实得到Alt+Q打开中文输入模式,代码如下,不知道为什么:

    !q::Send ^{F6}
    ^F6::Send ^{F7}
    ^F7::Send ^{F12}
    

    但是因为我还需要同时使用Alt+Q触发一个VSCode命令,所以只好修改上面的代码到以下:

    ~!q::Send ^{F6} ; with ~ prefixed
    ^F6::Send ^{F7}
    ^F7::Send ^{F12}
    

    现在Alt+Q确实触发了VSCode命令,但是不会开启中文输入模式...

    最后,如果我退后一步,将VSCode命令绑定到Ctrl+C(只需^c::Send ^{F12}就可以打开中文输入模式) ,我还是要在^c前加上~,否则不会触发VSCode命令,现在我又重复这个循环了……

    经过这么多尝试,不得不说搜狗输入法判断是否开启中文输入模式的逻辑非常不明确,使得开启中文输入模式的脚本非常不可靠。

    总之,即使我做了各种 hack 并让脚本按预期工作,它也可能在未来崩溃,这真的不值得麻烦。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-29
      • 1970-01-01
      • 2020-10-24
      • 2012-04-26
      • 2012-03-07
      • 2018-03-01
      • 1970-01-01
      相关资源
      最近更新 更多