【问题标题】:Holding down the left mouse button in AutoHotkey在 AutoHotkey 中按住鼠标左键
【发布时间】:2010-12-31 20:52:03
【问题描述】:

我想要一个脚本,其中按下 F1 会使 AutoHotkey 按住鼠标左键。然后我希望脚本在我再次按键后释放鼠标。

我该怎么做?

【问题讨论】:

  • 致那些愿意关闭线程的人:这是一个编程问题,AutoHotkey 是一种编程语言。
  • @PhiLho:感谢您指出这一点。我几乎自己关闭了这个。
  • @Pizza Overflow:您可能需要考虑在 AHK 问题中包含一个短代码 sn-p 以避免任何混淆。如果您只包含一小段代码来展示您到目前为止所尝试的内容,那应该就足够了,人们不会错误地将您的问题关闭为“与编程无关”。

标签: autohotkey


【解决方案1】:

嗯,我对 AHK 编程有点生疏,但这是我尝试过的,似乎可行:

F1::
  alt := not alt
  If (alt)
  {
    MouseClick Left, 217, 51, , , D
  }
  Else
  {
    MouseClick Left, 217, 51, , , U
  }
Return

【讨论】:

  • 使用 MouseClick 太过分了,而且看起来更复杂。点击向上/向下就足够了。
【解决方案2】:

我会使用 Click down 和 Click up

Click 通常比MouseClick 更受欢迎,因为如果用户通过系统的控制面板交换了鼠标左右键,它会自动补偿。

F1::
    alt := not alt
    if (alt)
    {
        Click down
    }
    else
    {
        Click up
    }
Return

【讨论】:

  • 我需要在热键过程代码的末尾添加Return 以使其适合我。 F1:: alt := not alt if(alt) { Click down } else { Click up } Return
【解决方案3】:

如果有人感兴趣,这里有一个单行:

F1::Click % GetKeyState("LButton") ? "Up" : "Down"

【讨论】:

  • 我可以将这个单行用于鼠标右键吗?更改 LButton -> RButton 似乎仍会触发鼠标左键...。
  • 是的。 F1::Click right % GetKeyState("RButton") ? "Up" : "Down" 可能会完成这项工作。如果不这样做F1::Click % "right " (GetKeyState("RButton") ? "Up" : "Down")
  • 完美! F1::Click % "right " (GetKeyState("RButton") ? "Up" : "Down") 按预期工作!谢谢福里温!
猜你喜欢
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多