首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在自动热键中重新映射alt+tab?

如何在自动热键中重新映射alt+tab?
EN

Stack Overflow用户
提问于 2020-06-08 05:33:24
回答 3查看 2.8K关注 0票数 7

如何使您的alt+tab功能像OSX那样工作,它使用的是meta+tab而不是alt+tab,同时也尊重shift键?

我有解决办法。请注意这篇文章的发布日期,因为在找出这篇文章之前,我已经看过了许多明显过时的解决方案。我已经在这个问题上工作了大约4个小时,并且遇到了很多不起作用的解决方案。我是一个10年的专业开发人员,但这个问题几乎要了我的命。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-03-16 22:18:08

有一个特殊的关键字来复制Alt + Tab功能。

我还意识到,AutoHotkey会阻止键盘信号,直到您通过释放所有键完成快捷方式,所以当我按住控制键时发送的任何附加选项卡都会被忽略。

是的,是这样的。热键会创建一些他们称之为“线程”的东西,默认情况下只能有一个。因此,如果您想在前面的“线程”完成之前再次触发相同的热键,则可以使用#MaxThreadsPerHotkey指令。

下面的代码交换了Alt + TabCtrl + Tab的功能--也就是说,在浏览器中,Ctrl + Tab将在应用程序之间切换,Alt + Tab将在选项卡之间切换。线程限制为255,这意味着您可以持有Ctrl并(理论上)在它停止工作之前按Tab 255次。

代码语言:javascript
运行
复制
#UseHook
SendMode Input
#MaxThreads 255

#MaxThreadsPerHotkey 255
<!Tab::
Send {LCtrl down}{Tab}
Keywait LAlt
Send {LCtrl up}
return
#MaxThreadsPerHotkey

<^Tab::AltTab

我想我花了更多的时间去做我想做的事,即使我活到100岁,他们也救不了我。

票数 6
EN

Stack Overflow用户

发布于 2021-06-15 14:25:53

代码语言:javascript
运行
复制
<#Tab::AltTab

这将重新映射"win + tab“到"alt选项卡”。它也适用于选项卡键的多次按压。

票数 1
EN

Stack Overflow用户

发布于 2020-06-08 05:33:24

注意:我已经通过RControl注册表将LWin键映射到LWin键上,因此自动热键位于此之上。

我找到了很多简单的解决方案

代码语言:javascript
运行
复制
>^Tab::
   Send {LAlt down}{Tab}
   KeyWait RControl
   Send {LAlt up}
   return

这里的问题是,它不能处理alt+tab+tab+tab去返回3个程序。

我还意识到,AutoHotKeys会阻止键盘信号,直到您通过释放所有键完成快捷方式,所以当我按住控制键时发送的任何附加选项卡都会被忽略。

我意识到,我需要第二个AutoHotKeys过程来强制通过。写起来似乎有些多余,但下面是我的第二个脚本:

代码语言:javascript
运行
复制
#IfWinActive "ahk_class TaskSwitcherWnd"
Tab::Send {Tab}
#IfWinActive

如果您不熟悉的话,#IfWinActive的功能只是为了使它不再在每次发送Tab键时触发--只有在Windows的任务切换程序处于焦点状态时才会这样。最终,这个脚本简单地说是Tab::Send {Tab}

然后你需要告诉它也要对shift键做出反应。奇怪的是,任务切换程序会监听这一点,但是Tab不需要,所以我们也不需要在脚本中转发Shift键。

最终,我的两个脚本如下所示:

脚本1

代码语言:javascript
运行
复制
#IfWinNotActive ahk_class TaskSwitcherWnd
; Remap Ctrl-Tab to Alt-Tab
$>^Tab::
    Send {Alt down}{Tab}
    Keywait Control
    Send {Alt up}
    return

; Remap Ctrl-Shift-Tab to Alt-Shift-Tab
$>^+Tab::
    Send {Alt down}{Shift down}{Tab}
    Keywait Control
    Send {Alt up}{Shift up}
    return
#IfWinActive

脚本2

代码语言:javascript
运行
复制
#IfWinActive ahk_class TaskSwitcherWnd
Tab::Send {Tab}
#IfWinActive

同时运行这些。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62255619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档