AutoHotkey怎么使用GroupAdd窗口组 AutoHotkey如何把多个窗口编成一组用快捷键切换【技巧】

梦浩吖_7208

梦浩吖_7208

2026-04-09

563人浏览

原创

可在autohotkey中通过groupadd定义窗口组,配合热键(如^!tab)或鼠标侧键循环激活组内窗口,并利用ahk_class、ahk_exe及正则匹配提升稳定性与精准度。

autohotkey怎么使用groupadd窗口组 autohotkey如何把多个窗口编成一组用快捷键切换【技巧】

如果您希望在AutoHotkey中将多个窗口归类为一个逻辑组,并通过快捷键快速在这些窗口之间循环切换,则需要借助GroupAdd命令配合WinActivate、WinWaitActive等指令实现窗口分组管理。以下是具体操作步骤:

一、定义窗口组并添加匹配窗口

GroupAdd命令用于创建一个命名窗口组,后续可通过该名称统一控制所有加入的窗口。窗口可通过标题、类名、进程名或正则表达式匹配方式加入,确保目标窗口具备稳定可识别特征。

1、打开记事本,新建一个.ahk文件,例如WindowGroup.ahk。

2、输入以下基础代码创建名为"MyEditorGroup"的窗口组:

GroupAdd, MyEditorGroup, Untitled - Notepad

3、继续添加其他符合标题特征的窗口,例如:

GroupAdd, MyEditorGroup, ahk_class Notepad

4、若需匹配多个不同标题但含共同关键词的窗口,使用正则模式:

GroupAdd, MyEditorGroup, ahk_exe code.exe

GroupAdd, MyEditorGroup, ahk_exe vscode.exe

二、设置快捷键实现组内窗口循环激活

利用Loop与WinExist遍历窗口组成员,结合WinActivate按顺序激活下一个可见且存在的窗口,从而实现快捷键驱动的循环切换逻辑。

1、在脚本中添加热键定义,例如使用Ctrl+Alt+Tab切换组内窗口:

^!Tab::

2、插入循环逻辑:先获取当前活动窗口是否属于该组,再查找下一个符合条件的窗口句柄:

GroupActivate, MyEditorGroup

return

3、若需更精确控制(如跳过最小化窗口),可改用自定义循环:

^!Tab::

GroupGet, windowList, MyEditorGroup

Loop, Parse, windowList, `n

{

  if (A_LoopField != "") {

    WinGet, state, ExStyle, ahk_id %A_LoopField%

    if !(state & 0x1000000) ; 排除已最小化的窗口

      WinActivate, ahk_id %A_LoopField%

      break

  }

}

return

三、使用窗口类名与进程名双重匹配增强稳定性

仅依赖窗口标题易受动态变化影响(如文档名变更),结合ahk_class或ahk_exe可显著提升匹配鲁棒性,尤其适用于VS Code、Chrome多标签页等场景。

1、确认目标程序的窗口类名:运行AutoHotkey自带Window Spy工具,点击目标窗口获取Class值。

2、在脚本中同时添加类名与进程名规则:

GroupAdd, MyBrowserGroup, ahk_class Chrome_WidgetWin_1

GroupAdd, MyBrowserGroup, ahk_exe chrome.exe

Seed-Music
Seed-Music

Seed-Music是字节跳动 Seed 团队发布的 AI 音乐生成研究项目。

下载

3、对Electron应用(如Slack、Discord)补充通用类名:

GroupAdd, MyBrowserGroup, ahk_class Chrome_WidgetWin_0

4、保存脚本后右键选择“Reload this script”生效配置。

四、排除干扰窗口并限定匹配范围

当多个相似窗口共存时(如多个Notepad实例),可通过排除特定标题或添加唯一标识避免误匹配,确保切换行为精准作用于预期窗口集合。

1、使用Exclude参数跳过含特定文本的窗口:

GroupAdd, MyEditorGroup, Untitled - Notepad, Exclude, Backup

2、为每个目标窗口手动指定唯一标题前缀,例如重命名窗口标题为"[EDITOR] main.py",再匹配:

GroupAdd, MyEditorGroup, \[EDITOR\].*, MatchMode, RegEx

3、启用正则匹配模式需前置声明:

SetBatchLines, -1

GroupAdd, MyEditorGroup, .*Notepad.*, MatchMode, RegEx

4、执行WinGetClass或WinGetTitle验证实际匹配结果,确保无遗漏或冗余。

五、绑定鼠标侧键或自定义组合键触发切换

除标准键盘热键外,AutoHotkey支持XButton1/XButton2(鼠标前进/后退键)等硬件事件,可释放常用按键资源并提升操作效率。

1、启用鼠标侧键监听,在脚本开头添加:

#InstallMouseHook

2、将XButton1绑定为向前切换,XButton2为向后切换:

XButton1::GroupActivate, MyEditorGroup

XButton2::

GroupGet, list, MyEditorGroup

StringSplit, arr, list, `n

Loop, %arr0%

{

  if (arr%A_Index% = A_ID)

  {

    target := arr%A_Index-1%

    if (A_Index = 1)

      target := arr%arr0%

    WinActivate, ahk_id %target%

    break

  }

}

return

3、重启脚本使鼠标钩子生效,确保AutoHotkey以管理员权限运行以捕获全局XButton事件。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

autohotkey

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

2023.06.20

4296

8

正则表达式不包含
正则表达式不包含

正则表达式,又称规则表达式,,是一种文本模式,包括普通字符和特殊字符,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式的文本。php中文网给大家带来了有关正则表达式的相关教程以及文章,希望对大家能有所帮助。

2023.07.05

2801

4

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

2023.07.05

7742

9

java正则表达式匹配字符串
java正则表达式匹配字符串

在Java中,我们可以使用正则表达式来匹配字符串。本专题为大家带来java正则表达式匹配字符串的相关内容,帮助大家解决问题。

2023.08.11

812

5

正则表达式空格
正则表达式空格

正则表达式空格可以用“\s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。本专题为大家提供正则表达式相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

520

5

Python爬虫获取数据的方法
Python爬虫获取数据的方法

Python爬虫可以通过请求库发送HTTP请求、解析库解析HTML、正则表达式提取数据,或使用数据抓取框架来获取数据。更多关于Python爬虫相关知识。详情阅读本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.13

673

12

正则表达式空格如何表示
正则表达式空格如何表示

正则表达式空格可以用“\s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。想了解更多正则表达式空格怎么表示的内容,可以访问下面的文章。

2023.11.17

386

3

正则表达式中如何匹配数字
正则表达式中如何匹配数字

正则表达式中可以通过匹配单个数字、匹配多个数字、匹配固定长度的数字、匹配整数和小数、匹配负数和匹配科学计数法表示的数字的方法匹配数字。更多关于正则表达式的相关知识详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.12.06

719

7

php正则表达式有哪些
php正则表达式有哪些

php正则表达式有"/pattern/"、"^"、"$"、"."、"[]"、"[^]"、"[a-z]"、"[A-Z]"、"[0-9]"、"\d"、"\D"、"\w"、"\W"、&a

2024.02.23

312

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.7万人学习