【问题标题】:AutoHotKey: detect single key release in keycombo for FirefoxAutoHotKey:在 Firefox 的 keycombo 中检测单键释放
【发布时间】: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


【解决方案1】:
#IfWinActive Showcase

    LAlt & Tab:: 
        Send {Tab}
        SetTimer Send_Enter, -50
    return

#IfWinActive     ; turn off context sensitivity

Send_Enter:
    KeyWait, LAlt, L
    Send {Alt Up}{Enter}
return

【讨论】:

  • 确实如此,@ADD!
猜你喜欢
  • 1970-01-01
  • 2014-09-15
  • 1970-01-01
  • 2011-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-31
相关资源
最近更新 更多