AutoHotKey:按下按键后,如何禁用X键的时间?

时间:2013-09-17 05:31:56

标签: autohotkey

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

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

$F3::
Send q
Send {F3}
return

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

如果你还是不明白:

(持有F3) 发送q 发送F3 发送q 发送q 发送q (3秒钟过去了) 发送F3 发送q 发送q

提前致谢。

2 个答案:

答案 0 :(得分:0)

您希望重新映射这些3秒钟的密钥以仅发送q,然后重新启用它。您可以使用Hotkey, *F3, off执行此操作。看here

以下是您希望F3做的事情:

F3模式1

  1. 将F3重新映射到q
  2. 睡3秒
  3. 发送F3
  4. 将F3重新映射到 F3模式1 (即同样的功能)

答案 1 :(得分: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()