【问题标题】:AutoHotKey on right mouse click get a keyboard button pressed as well鼠标右键单击时的 AutoHotKey 也会按下键盘按钮
【发布时间】:2013-03-27 23:57:43
【问题描述】:

有人可以帮助我使用 AutoHotKey 宏在单击鼠标右键时按下和释放 Q 键,在释放鼠标右键时按下和释放 Q 键吗?

编辑:
解释,想象一下,我正在玩游戏,当我点击鼠标右键(然后我按住它)时,我需要在键盘上自动按下 Q 字母,所以我会跳跃(或蹲下)当时在游戏中,当我释放鼠标右键(鼠标按钮向上)时,我会再次按下 Q 自动键。 我正在尝试编写脚本,但无法正常工作。

这是我目前想出的:

    RButton::
    If !Toggler {
    Send, {RButton Down} q
    Return
    }
    Send {RButton Up} q
    Return

【问题讨论】:

  • 您能否尝试重写您的问题,因为您不太清楚您想要什么! Q键是什么意思?这是一个带Q的软件按钮吗?还是你的意思是 Q 键?
  • 我添加了一些解释

标签: autohotkey mousedown


【解决方案1】:

好的,您似乎想要切换行为。

#SingleInstance Force
#installKeybdHook
#Persistent
SetTitleMatchMode, 2 ; Make search title in #IfWinActive more flexible

#IfWinActive, Title of your game as found by AHK Windows Spy 
    RButton::
        If (Toggler := !Toggler )
        {
            ToolTip, RButton Down
            Send, {RButton Down} q
            Return
        }
        ToolTip, RButton Up        
        Send {RButton Up} q
    Return
#IfWinActive
Return

*x::
ExitApp

更新

阅读您的文本(并忽略您想要切换行为的脚本)后,我认为您想要这个! RightClick 将发送RightClick Down + q,然后什么都没有,直到你放开RightClick,然后它会发送RightClick Up + q。我添加了工具提示,因此您可以查看#IfWinActive 是否正确激活了脚本。

#SingleInstance Force
#installKeybdHook
#Persistent
SetTitleMatchMode, 2 ; Make search title in #IfWinActive more flexible

#IfWinActive, Title of your game as found by AHK Windows Spy

RButton::
    ToolTip, RButton Down + q
    Send, {RButton Down} q
Return

RButton Up::
    ToolTip, RButton Up + q
    Send, {RButton Up} q
Return

#IfWinActive
Return

*x::
ExitApp

如果这确实是您想要的,那么最终的解决方案将非常接近 Armin 的原始提示!

更新 2,替代方式

#SingleInstance Force
#installKeybdHook
#Persistent
SetTitleMatchMode, 2 ; Make search title in #IfWinActive more flexible

#IfWinActive, Title of your game as found by AHK Windows Spy
    *~RButton:: ; ~ passes Rbutton through
        ToolTip, RButton Down + q
        Send, q
        KeyWait, RButton ; Wait for RButton to be released
        ToolTip, RButton Up + q
        Send, q
    Return
#IfWinActive
Return

*x::
ExitApp

【讨论】:

  • 谢谢,我一回到家就试试。顺便说一句,应该添加什么以便此脚本仅在特定游戏中有效,所以我可以添加文件路径或其他内容?
  • 是的,更新后的脚本看起来更正确。我会试一试,并会告知进展情况。再次非常感谢
  • 我现在正在使用脚本的第二个变体,虽然一切都按预期工作,但有一件令人不快的事情 - 有时会出现一个白色的小矩形,上面有黑底白字“RButton Up + q”在游戏的各个地方,它开始烦人:) 我应该在 AutoHotKey 中关闭一些东西还是与脚本相关?
  • 只需从代码中删除带有ToolTip 的这两行。仅添加了这些行,因此您可以验证脚本是否有效
  • 我发现在使用您的 AutoHotLey 脚本时会想到(更新 2,替代方式)如果在键盘上按下了 shift 按钮,则鼠标右键单击以激活 Q 键会出现问题。因此,如果按下 shift 然后我按鼠标右键单击该脚本将不起作用。如果在鼠标点击之前按下 W A S D 键 - 它工作正常。有一些解决方法吗?此外,有时编译后的 exe 文件会自行关闭。为什么会这样?
【解决方案2】:

您可以通过热键使用后缀up

例子

h up::
    ; your code
return

将在您释放键 h 时触发。您可以将其与任何热键一起使用,包括鼠标。

您可以使用Send 命令发送按键。

【讨论】:

    猜你喜欢
    • 2021-04-20
    • 2013-06-07
    • 2019-05-19
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多