【发布时间】:2017-11-08 18:43:58
【问题描述】:
尝试在 AutoHotKey 的帮助下将组合键 Alt+Tab 配置为 Firefox 中的tab switcher:
#IfWinActive Showcase
LAlt & Tab::Send {tab}
GetKeyState, state, LAlt
if state = U
Send {enter}
基本上,这可以防止 Alt+Tab 调出 Windows 的普通窗口切换器,并在按下 Tab 时循环打开标签。然而,当我试图模拟 Windows 窗口切换器的行为时,我也希望它能够显示 - Send {enter} - Left Alt 释放时最后选择的选项卡。 /em> 而这我似乎无法完成,因为GetKeyState 只是不会响应,即使state 变为U。在这种情况下如何检测密钥释放?
添加:
所以我最终得到了以下代码,它的主要部分是我想要的:
#IfWinActive ahk_exe firefox.exe ; Alt+Tab to Windows
LAlt & tab::
Send {F10} ; F10 brings up Showcase in my FF installation
WinWaitActive Showcase
GetKeyState, state, LAlt, P
if state = U
WinClose Showcase
IfWinNotActive Showcase
Send {LWin}
#IfWinActive Showcase ; Alt+Tab over Firefox’s tabs
LAlt & tab::
Send {tab}
SetTimer, choice, -50
return
choice: ; Thanks, @987654322@!
KeyWait, LAlt, P
IfWinActive Showcase
Send {LAlt up} {space}
return
#IfWinActive ahk_exe firefox.exe ; Win+Tab over Firefox’s tabs
LWin::F10
#IfWinActive Showcase ; Win+Tab to Windows
tab::return
LWin & tab::
WinClose Showcase
WinWaitClose Showcase
WinMinimize ahk_exe firefox.exe
Send {LWin down} {tab} {LWin up}
return
ExitApp
这实际上模拟了 Firefox 中的 Alt+ 和 Win+Tab 行为,我通常在全屏模式下使用:
- 在按住 Alt 的同时按 Tab 将在打开的选项卡中循环,就像 Alt+Tab 循环窗口一样
- 要跳出FF到Windows,Alt+Tab快速推送释放;这将调出开始菜单,从中可以正常使用 Alt+Tab
- Win+Tab 在 Windows 中的工作方式有点不同,因为不需要按住 Win 来保持它,并且(至少在 Windows 10 中)不能使用 Tab 循环浏览窗口;这也是通过按下 Win+Tab 来模拟的相同方式(实际上只需 Win 就足够了,但为了保持一致性,我同时按下两者); Tab 也被阻止,因此无法循环,以模拟真实 Win+Tab 在 Windows 中的工作方式
- 要退出 Firefox 的 Win+Tab 到 Windows,再次推送上述组合 - 这将调出正常的 Win +标签的Windows 10;也可以通过这种方式轻松访问任务栏
因为我以前不知道任何 AutoHotKey,所以回想起来这可能是一个有点矫枉过正的任务。然而,这确实迫使我真正学习如何在 AHK 中编程,同时提升我的整体编程技能。为此,这很棒。我经常发现自己本能地在 Firefox 中推动 Alt+Tab 以循环浏览选项卡,就像对 Windows 所做的那样,只是提醒一下,这实际上仅适用于 Windows 中的窗口.直到最近,那是:)
【问题讨论】:
-
如果启用选项“Ctrl+Tab cycles through tabs in recently used order”,您可以使用“Ctrl+Tab”作为选项卡切换器。
-
是的,
Ctrl+Tab已经存在了一段时间。非常感谢您的回答;我已经扩展了代码并将很快在原始问题中分享它。
标签: firefox keyboard-shortcuts autohotkey