AutoHotKey - выборочно вызывать AltTabMenu при нажатии колесика мыши - PullRequest
0 голосов
/ 02 мая 2019

В настоящее время я использую следующий скрипт для переключения приложений с помощью колеса мыши:

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

Это позволяет мне щелкнуть колесиком мыши, затем прокрутить колесико, чтобы выбрать нужное приложение, затем снова щелкнуть, чтобы переключиться на него.

Однако есть некоторые приложения, которые требуют, чтобы я щелкнул колесом мыши (т. Е. SketchUp для орбиты).

Как я могу автоматически отключить / пропустить этот набор макросов, только когда приложение SketchUp находится на переднем плане (т. Е. Окно имеет фокус)?

Согласно официальным документам , функция AltTabMenu действительна, только когда она напрямую связана с горячей клавишей на той же строке (т. Е. MButton :: AltTabMenu), поэтому я не могу использовать WinGetTitle и оператор IF выборочно вызвать AltTabMenu.

В настоящее время я просто отключаю AutoHotKey, когда использую SketchUp, но это раздражает, потому что мой скрипт AHK также содержит несколько других сочетаний клавиш / перераспределений клавиш, которые я часто использую.

Спасибо за понимание.

Ответы [ 3 ]

1 голос
/ 03 мая 2019

Подводя итог решениям, которые уже предоставлено замечательным сообществом 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
0 голосов
/ 02 мая 2019

Я полагаю, что вы можете получить желаемый эффект без использования специальных команд alt-tab.Вместо этого вы можете сопоставить ^!{tab} с MButton.

Этот тестовый фрагмент работал для меня:

#If WinActive( "Untitled" ) ; new, unsaved notepad window
MButton::Send , a
#If
MButton::Send , ^!{tab}
0 голосов
/ 02 мая 2019

Перезаписать горячую клавишу внизу, когда вы находитесь в окне SketchUp

...