【问题标题】:Can't hold down a key with AutoHotkey无法使用 AutoHotkey 按住键
【发布时间】:2015-11-15 02:35:35
【问题描述】:

我有一个看起来不符合预期的简单脚本:

^j::
  Send, {Down down}
  Sleep, 10000
  Send, {Down up}
Return

我希望它按住向下箭头键 10 秒钟,然后松开。相反,它按一次向下键,然后中断脚本直到重新加载。我做错了什么?

【问题讨论】:

    标签: windows autohotkey


    【解决方案1】:

    Send documentation 说:

    当通过上述方法按住某个键时,它不会像您实际按住它时那样开始自动重复(这是因为自动重复是一种驱动程序/硬件功能)。

    使用SetKeyDelay并指定重复次数:

    SetKeyDelay, 30
    Send {Down 333}
    

    333 约为 10000/30

    或者,您可以在 loop 中执行此操作并检查其他密钥以停止发送 Down 密钥。

    【讨论】:

      【解决方案2】:

      找到了一个很好的解决方法,试试这样的脚本(根据自己的喜好调整 Mynumber 变量和 Sleep)

      a::
      Mynumber = 10
      While Mynumber > 0
      {
      Send {Down DOWN}
      Sleep 10
      Send {Down UP}
      Mynumber--
      }
      

      【讨论】:

        【解决方案3】:

        根据文档,这应该可以工作:

        To hold down or release a key: Enclose in braces the name of the key followed by the word Down or Up. For example:
        
        Send {b down}{b up}
        Send {TAB down}{TAB up}
        Send {Up down}  ; Press down the up-arrow key.
        Sleep 1000  ; Keep it down for one second.
        Send {Up up}  ; Release the up-arrow key.
        

        关于按住键的文档:https://www.autohotkey.com/docs/commands/Send.htm

        【讨论】:

        • 是的,这就是我感到困惑的原因。我是根据那个例子写的,但我不能让它正常工作。
        • 你在哪里尝试实现这个或者你在哪里测试它?
        • 在 Bootcamp 上运行的 Windows 8.1。我的私人机器。如果有机会,我可能会在另一台机器上试一试。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-31
        • 1970-01-01
        • 2013-06-07
        • 1970-01-01
        • 2018-08-07
        • 2013-03-03
        • 2016-12-01
        相关资源
        最近更新 更多