【问题标题】:Autohotkey Hotkey trigger another hotkeyAutohotkey Hotkey 触发另一个热键
【发布时间】:2016-02-28 23:52:32
【问题描述】:

再次,我是 Autohotkey 部分的新手,这是我现在面临的一个问题。好的,下面让我解释一下。

a::
  loop
  {
    ; do something
    break
  }
  Send,{b}
return

b::
  ; do something
  Send,{a}
return

当按下“a”时,调用“b”活动会被罚款,但之后,在“b”内它不能再次调用“a”。为什么?

【问题讨论】:

  • 在两个键标签前面加上$,比如$a::$b::
  • 前缀 $ 只会让我什至无法调用另一个热键函数..当热键在函数内发送时,我想继续互相调用..跨度>
  • $a:: Send,{y} Sleep,100 Send,{b} return $b:: Send,{x} Sleep,100 Send,{a} return 这个只带我发按下“a”时发送 yb,按下“b”时发送 xa...
  • 不要使用{}发送字母密钥,只需send a。也尝试所有方法:sendplaysendEventsendInput
  • 我不知道您的问题的答案,但您也可以为两个热键分别添加一个标签,并使用 gosubgoto (在您的情况下哪个无关紧要,因为无论如何后面都有一个return)而不是send

标签: loops autohotkey hotkeys


【解决方案1】:

使用GoSub。 示例:

!z::
    MsgBox, z
return

F10::
    Gosub, !z
return

【讨论】:

    【解决方案2】:

    使用最新的 Autohotkey 版本 (v1.1.22.09),以下代码会创建一个调用自身的无限循环:

    a::
      loop
      {
        MsgBox % "A Hotkey"
        break
      }
      Send b
    return
    
    b::
      MsgBox % "B Hotkey"
      Send a
    return
    

    我假设您删除了真正问题所在的“做某事”代码。

    【讨论】:

      【解决方案3】:

      你可以用标签来做。

      测试: 一种:: 环形 { ;做一点事 休息 } 发送,{b} 返回

      b:: ;做一点事 转到,测试 返回

      【讨论】:

        猜你喜欢
        • 2013-10-21
        • 1970-01-01
        • 1970-01-01
        • 2013-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-25
        相关资源
        最近更新 更多