1

我想要一个脚本,它会按一次按钮,然后等待 3 秒钟,然后在 AutoHotKey 中再次按下它。

我使用 F3 发送发送 Q 和 {F3}。

$F3::
Send q
Send {F3}
return

但是,我按住 F3 反复发送 Q,但我只希望 {F3} 在最后一次发送前等待至少 3 秒后发送。

如果你还是不明白:

(按住 F3) 发送 q 发送 F3 发送 q 发送 q 发送 q (3 秒过去了) 发送 F3 发送 q 发送 q

提前致谢。

4

2 回答 2

0

您想在这 3 秒内重新映射密钥以仅发送 q,然后重新启用它。您可以使用Hotkey, *F3, off. 看这里

这是您希望 F3 执行的操作:

F3 模式 1

  1. 将 F3 重新映射到 q
  2. 睡眠 3 秒
  3. 发送 F3
  4. 将 F3 重新映射到F3 模式 1(即相同的功能)
于 2013-09-17T05:42:15.320 回答
0

我尝试实施我的第一个解决方案,但无法让它发挥作用。似乎没有立即安装动态重新映射。下面是一个更简单的解决方案,它使用最后一次 F3 按键的时间。请注意,由于您正在发送 {F3},因此您需要暂时禁用 F3 绑定,否则它将再次触发该操作。

last_f3_time := 0

F3_Mode_1()
{
   global last_f3_time
   Send q
   now := A_TickCount

   if (now - last_f3_time > 3000)
   {
      last_f3_time := now
      Hotkey, F3, off
      Send {F3}
      Hotkey, F3, on
   }
   ;else{MsgBox, Too early! %now%}
}


F3::F3_Mode_1()
于 2013-09-17T07:35:19.540 回答