【问题标题】:AHK, how to capture Rbutton in loopAHK,如何在循环中捕获 Rbutton
【发布时间】:2021-10-31 05:52:13
【问题描述】:

有人可以帮助我了解如何在循环中捕获 Rbutton 吗? 这个想法是当我点击 GUI 按钮时,它的激活循环并等待一段时间,例如 15 秒,直到点击 RButton,如果循环检测到 RBUtton 被双击,应该显示消息框

w::SetTimer 测试,5000 测试: 环形 { ;等待 RButton 何时被点击 按键等待,R按钮 A := GetKeyState("Rbutton","P") 如果一个%) { MsgBox,这部分应该继续等待 RButton 什么都不做,继续等待 } else if (%A%) { MsgBox,你点击了双 RButton 发送,这是文本 休息 } } Msgbox 脚本结束 SetTimer 测试,关闭 返回

【问题讨论】:

    标签: loops autohotkey


    【解决方案1】:

    我的想法:

    1. 使用While循环作为定时器,即在持续时间(例如15秒)内,不断检查双右键的状态。如果在持续时间内满足条件,则中断循环并显示消息框。
    2. 使用SetTimerGetKeyState不断检查和更新右键单击次数。

    注意以下脚本。假设当 GUI 被点击时,DetectDoubleClick() 将被触发。

    Counter_RButton := 0
    SecondsToWait   := 15
    
    
    DetectDoubleClick()
    {
      Global Counter_RButton
      Now   := A_TickCount
      End   := A_TickCount + (SecondsToWait * 1000)
      SetTimer, CaptureRButton, 150
      While (End >= Now)
      {
        if (Counter_RButton = 2)
        {
          Counter_RButton := 0
          MsgBox,,,Double RButton Detected!
          break
        }
        Now := A_TickCount
      }
    SetTimer, CaptureRButton, Off
    return
    }
    
    CaptureRButton:
    ButtonIsDown := GetKeyState("RButton")
    If ButtonIsDown
        Counter_RButton := Counter_RButton + 1
    Exit
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-01
      • 1970-01-01
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      相关资源
      最近更新 更多