AutoHotKey-按下鼠标滚轮时有选择地调用AltTabMenu

时间:2019-05-02 18:05:57

标签: autohotkey mousewheel alt-tab

我目前使用以下脚本来用鼠标滚轮切换应用程序:

MButton::AltTabMenu
WheelDown::AltTab
WheelUp::ShiftAltTab

这允许我单击鼠标滚轮,然后滚动滚轮以选择所需的应用程序,然后再次单击以切换到它。

但是,有些应用程序要求我单击鼠标滚轮(例如,SketchUp才能运行)。

仅当SketchUp应用程序位于前台(即窗口具有焦点)时,如何才能自动禁用/跳过这组宏?

根据official docs,AltTabMenu函数仅在与同一行上的热键直接配对(即MButton :: AltTabMenu)时才有效,因此我不能使用WinGetTitle和IF语句来选择性地调用AltTabMenu。

当前,我在使用SketchUp时只是禁用了AutoHotKey,但这很烦人,因为我的AHK脚本还包含其他一些我经常使用的快捷键/键重新映射。

感谢您的见解。

3 个答案:

答案 0 :(得分:1)

总结了AHK社区已经提供的解决方案,这是我对这个问题的看法:

MButton::Send , ^!{tab}  ; this sets wheel click to open the AltTab menu


#IfWinActive SketchUp ; you may need to adjust the window name here
MButton::return   ; ignore the hotkey defined above if SketchUp is active


#IfWinActive ahk_class MultitaskingViewFrame  ; Indicates that the alt-tab menu is present on the screen. The below hotkeys are used then to tab through the windows
WheelDown::Send, !{tab}
WheelUp::Send, +!{tab}
MButton::Send, {Enter}
#IfWinActive

答案 1 :(得分:0)

我相信您无需使用特殊的alt-tab命令即可获得理想的效果。相反,您可以将^!{tab}映射到MButton

此测试代码段对我有用:

#If WinActive( "Untitled" ) ; new, unsaved notepad window
MButton::Send , a
#If
MButton::Send , ^!{tab}

答案 2 :(得分:-1)

在SketchUp窗口中覆盖底部的热键