【问题标题】:Creating a time-sensitive Keyboard Shortcut Chord with Autohotkey使用 Autohotkey 创建时间敏感的键盘快捷键和弦
【发布时间】:2016-04-20 12:05:35
【问题描述】:

我正在使用以下脚本在按下 Ctrl-Alt-I 并随后使用 p、k 或 u 键时运行一堆命令。如何将其更改为等待下一个键 2 秒,否则只需发送 Ctrl-Alt-I 并停止等待下一个键

^!i::
Input key, I L1
IfEqual key,p
   Run, "C:\Temp"
IfEqual key,k
   Run, "C:\Temp\1"
IfEqual key,u
   Run, "C:\Temp\2"
Return

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    像这样?

    $^!i::
        Input key1, I L1 T2 ;wait 2 seconds for a keypress
        If (key1 = "p" || key1 = "k" || key1 = "u") { ;if p, k or u were pressed
            If (key1 = "p") { ;if the first key we waited for was p:
                Run, "C:\Temp"
            } Else If (key1 = "k") { ;if the first key we waited for was k:
                Run, "C:\Temp\1"
            } Else If (key1 = "u") { ;if the first key we waited for was u:
                Run, "C:\Temp\2"
            } Else {
                SendInput, ^!i
            }
        }
    Return
    

    【讨论】:

    • 我不知道..这并没有真正起作用......它似乎永远停留在返回上...... 016:返回(3.46)045:输入,key1,I L1 T0.3 (0.33) 046: if (key1 = "p" || key1 = "k" || key1 = "u") 060: Return (13.24) 按[F5]刷新。
    • 我尝试在您检查 p k 和 u 的各种 if 中将 key1 重命名为 key2 。但它仍然不起作用。还将键 2 时间增加到 2 秒,什么都没有
    • 在按下接下来的两个键之前,您需要释放控制、alt 和 i。键盘并不是真正为同时处理那么多按键而设计的。并且脚本不会卡住。如果你不相信我,在你的热键开头放一个 MsgBox,你会看到的。
    • 我添加了一个 msgbox,它到达了这一行: Input key2, I L1 T2 ; 等待 2 秒,等待另一个键被按下。 PS:我没有同时按下 Ctrl-Alt-I-p。我首先按 Ctrl-Alt-I 并释放,然后按 p。你自己运行过这个脚本吗?
    • 如果热键自行触发,请在热键前面放置一个美元符号。 $^!i:: 这样可以防止热键自行触发。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多