Autohotkey 同时多个热键(中键、左键、鼠标右键同时按下)

Posted

技术标签:

【中文标题】Autohotkey 同时多个热键(中键、左键、鼠标右键同时按下)【英文标题】:Autohotkey Multiple hotkeys at same time (Middle button, Left button, Right button of the mouse pressed at once) 【发布时间】:2021-06-17 16:29:56 【问题描述】:

我一直在研究一种用鼠标控制音乐/媒体的方法,到目前为止我可以做到所有这些:

中键和右键播放下一首歌曲

Mbutton & RButton::Send Media_Next

中左键播放上一曲

Mbutton & LButton::Send Media_Prev

中按并向上滚动 增加声音(不会停止在其他地方使用中键)

中键按下并向下滚动 降低声音(不会停止在其他地方使用中键)

#IfWinActive

Mbutton up::

`if a_priorhotkey not in wheelup,wheeldown`

    `send Mbutton`
return

#if getkeystate("Mbutton", "p")

Wheelup::Send Volume_Up

Wheeldown::Send Volume_Down

但现在我需要同时按下 ALL 3 (Lbutton + Mbutton + Rbutton), 发送 Media_Play_Pause 而且它不适用于 Lbutton & Mbutton & Rbutton...

有什么想法吗?感谢阅读。

【问题讨论】:

【参考方案1】:

这是一种可能性:

#if getkeystate("Lbutton", "p") and getkeystate("Rbutton", "p")
MButton::Send Media_Play_Pause
#if

解释(虽然大部分是直截了当的前言):

    第 1 行:如果按下了 LButtonRButton 第 2 行:MButton 表示 Send Media Pause/ Play 第 3 行:结束上下文相关热键

完整脚本:

#IfWinActive

Mbutton & RButton::Send Media_Next
Mbutton & LButton::Send Media_Prev

Mbutton up::
if a_priorhotkey not in wheelup,wheeldown

    send Mbutton
return

#if getkeystate("Mbutton", "p")
Wheelup::Send Volume_Up
Wheeldown::Send Volume_Down

#if getkeystate("Lbutton", "p") and getkeystate("Rbutton", "p")
MButton::Send Media_Play_Pause
#if

【讨论】:

嗨!感谢您的帮助,我刚刚在这里进行了测试,我认为这只有在我同时按下按键时才有效,否则由于其他热键,它只会播放下一首或上一首歌曲。 在按下Middle Mouse Button 之前先尝试同时按住Left Mouse ButtonRight Mouse Button。如果我理解正确,您的脚本中目前没有LButton & RButton 热键,因此一旦按住它们,然后按下MButton 应该会激活这个新代码块,而不是之前的任何代码块。无论如何,我都会更新我的答案以包含对我有用的完整脚本。

以上是关于Autohotkey 同时多个热键(中键、左键、鼠标右键同时按下)的主要内容,如果未能解决你的问题,请参考以下文章

显示 AutoHotkey 热键列表

无论如何让热键激活没有 AutoHotkey 的应用程序?

如何强制 Windows 忽略 AutoHotKey 并将该热键直接传递给活动窗口?

用鼠标左键绘制折线,利用鼠标中键或右键终止绘制

推荐一款轻量小众却高效免费开源windows热键脚本语言Autohotkey

sublime Jetbrains系IDE如何多选多个行的光标同时输入