notes autohotkey manual

本文介绍AutoHotkey的基础使用和语法,包括热键、热字符串、按键映射等实用技巧,并提供变量表达式、鼠标键盘操作及发送输入指令的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

google ahk manual
Version 1.1.24.05
https://autohotkey.com/docs/AutoHotkey.htm

Quick Reference

Basic Usage and Syntax

Hotkeys

`::
msgbox 1Click
return
`::msgbox 1
` & 1::msgbox 1

Other Features:

` & 1::AltTab  ; Hold down right-control then press right-shift repeatedly to move forward.
` & 2::ShiftAltTab  ; Without even having to release right-control, press Enter to reverse direction.

Hotstrings & auto-replace

::\1::11
::\1::
msgbox 1
return

Remapping keys and buttons

1::2

Key List (Keyboard, Mouse, Joystick)

https://autohotkey.com/docs/KeyList.htm

Scripts

msgbox 1

Variables and Expressions

v1 := 123
v2 := "abc"
v3 := 1+1
msgbox, %v1%%v2%%v3%

Mouse and Keyboard

Hotkeys and Hotstrings

#If

#If WinActive("ahk_exe explorer.exe")
`::msgbox 1
#If
#If WinActive("ahk_exe notepad.exe")
`::msgbox 2
#If

note:To turn off context sensitivity, specify #If or any #IfWin directive but omit all the parameters.

MouseClick

windows7sp1点击开始

`::MouseClick, left, 33, 920

MouseGetPos

MouseGetPos, xpos, ypos
Msgbox, The cursor is at X%xpos% Y%ypos%. 

MouseMove

MouseMove, 200, 100

Send, SendRaw, SendInput, SendPlay, SendEvent

`::send {bs 5}
<think>好的,我现在需要处理用户的问题,用户想要一个关于AutoHotkey V2.0全局快捷键的详细教程。首先,我需要确认用户的需求是什么。用户之前已经询问过一个关于AutoHotkey的错误信息,现在转向如何正确使用全局快捷键,特别是V2.0版本。这说明用户可能已经解决了之前的语法错误,现在想深入学习如何有效利用全局快捷键。 接下来,我需要考虑用户可能的背景。用户可能已经有一定的AutoHotkey使用经验,或者至少已经安装了V2.0版本。但为了全面,教程应该从基础开始,逐步深入,确保新手也能跟上。同时,用户可能希望了解V2.0与旧版本的区别,特别是在语法上的变化,比如必须使用大括号包裹代码块,这在之前的错误问题中已经提到过。 首先,教程的结构要清晰。可能需要分为几个部分:全局快捷键的基本概念、基本语法、常见用法示例、高级功能、最佳实践和注意事项。每个部分需要详细但不过于冗长,确保用户能够逐步理解和应用。 在基本概念中,需要解释什么是全局快捷键,为什么它们有用,以及它们在V2.0中的特点。例如,全局快捷键可以在任何窗口下触发,这对于自动化操作非常有用。同时,V2.0的语法变化需要强调,比如必须使用大括号,单行和多行代码的不同处理方式。 基本语法部分需要详细说明如何定义热键,包括修饰符(如^代表Ctrl,!代表Alt等),键名,以及代码块的包裹。这里可能需要对比V1和V2的差异,避免用户混淆。例如,在V1中,多行代码可以省略大括号,用Return结束,但在V2中必须使用{}。 常见用法示例部分需要覆盖用户可能常用的场景,比如发送文本、启动程序、控制窗口、模拟输入等。每个示例应该包含代码和说明,让用户能够复制粘贴并修改以适应自己的需求。同时,可能需要提到一些V2.0特有的函数,比如A_TimeSincePriorHotkey,这在处理重复按键时很有用。 高级功能可能包括上下文相关的热键、自定义组合键、热键临时禁用和热键嵌套。这部分需要更深入的讲解,但也要保持简洁,避免让用户感到困惑。例如,使用#HotIf根据窗口条件启用不同的热键,或者使用Hotkey函数动态创建热键。 最佳实践和注意事项需要提醒用户如何避免常见错误,比如使用英文符号,及时释放修饰键,以及处理热键冲突。此外,测试和调试的建议也很重要,帮助用户有效排查问题。 在编写过程中,要确保所有示例代码符合V2.0的语法规范,特别是大括号的使用。同时,需要检查是否有拼写错误或语法错误,以免误导用户。另外,考虑到用户可能从V1迁移到V2,可能需要指出一些迁移注意事项,比如语法的强制性变化。 最后,总结部分要简明扼要,强调关键点,并鼓励用户进行实践。同时,提供进一步学习的资源,如官方文档和社区链接,帮助用户深入探索。 现在需要验证所有示例代码是否正确,特别是V2.0的语法。例如,Send命令在V2.0中可能需要参数用引号包裹,而V1中不需要。同时,MsgBox的参数在V2.0中可能需要括号,这也是需要注意的地方。另外,检查所有修饰符和键名是否正确,避免使用已弃用的语法。 另外,需要确保教程的结构逻辑清晰,每个部分之间有良好的过渡,让用户能够顺畅地跟随。可能需要在每个示例后添加解释,说明代码的作用和关键点。同时,使用注释帮助用户理解代码结构。 最后,确保语言简洁明了,避免技术术语过多,必要时进行解释。考虑到用户可能有不同的熟练程度,教程需要兼顾新手和有经验的用户,提供从基础到进阶的内容。</think>以下是关于 **AutoHotkey v2.0 全局快捷键(Global Hotkeys)** 的详细教程,从基础到进阶逐步讲解: --- ### **一、全局快捷键的核心概念** 1. **什么是全局快捷键?** - 无论当前焦点在哪个窗口或程序,全局快捷键都能被触发。 - 适合实现跨应用的自动化操作(如快速启动软件、模拟输入、窗口管理等)。 2. **v2.0 与 v1.x 的主要差异** - **语法强制严格化**:必须使用 `{}` 包裹热键代码块,单行代码也不例外。 - **函数化设计**:更多功能通过内置函数实现(如 `Hotkey()`)。 - **去兼容性**:不再支持旧版松散语法(如省略大括号)。 --- ### **二、全局快捷键基础语法** #### **1. 基本格式** ```autohotkey 修饰符 & 键名:: { ; 要执行的代码 } ``` - **修饰符**:`^` (Ctrl)、`!` (Alt)、`+` (Shift)、`#` (Win) - **键名**:字母键(`a`-`z`)、功能键(`F1`-`F24`)、特殊键(`Esc`, `Space`, `Tab` 等) #### **2. 单行代码简化写法** ```autohotkey ^s::Send "^s" ; Ctrl+S 触发(直接发送 Ctrl+S) ``` #### **3. 多行代码块** ```autohotkey ^j:: { Send "Hello{Space}" Run "notepad.exe" MsgBox("操作完成!", "提示", "Iconi") } ``` --- ### **三、常见用法示例** #### **1. 发送文本/快捷键** ```autohotkey !t::Send "这是一段自动输入的文本。" ; Alt+T 触发文本输入 ^!d::Run "calc.exe" ; Ctrl+Alt+D 打开计算器 ``` #### **2. 窗口控制** ```autohotkey #Up::WinMaximize("A") ; Win+↑ 最大化当前窗口 #Down::WinMinimize("A") ; Win+↓ 最小化当前窗口 ``` #### **3. 模拟复杂操作** ```autohotkey ^+s:: { Send "^s" ; 保存文件 Sleep 500 Run "explorer.exe D:\backup" ; 打开备份文件夹 } ``` #### **4. 条件热键(上下文相关)** ```autohotkey #HotIf WinActive("ahk_exe chrome.exe") ; 仅在 Chrome 中生效 ^r::Send "{F5}" ; Ctrl+R 刷新页面 #HotIf ; 重置上下文条件 ``` --- ### **四、高级功能** #### **1. 动态热键注册** 使用 `Hotkey()` 函数动态创建/修改热键: ```autohotkey Hotkey("^n", (*) => MsgBox("你按下了 Ctrl+N")) ; 绑定匿名函数 Hotkey("F1", "MyFunction") ; 绑定命名函数 MyFunction(*) { MsgBox("F1 被触发!") } ``` #### **2. 热键临时禁用** ```autohotkey ^e:: { Hotkey("^e", "Off") ; 禁用 Ctrl+E MsgBox("热键已禁用") Hotkey("^e", "On") ; 重新启用 } ``` #### **3. 自定义组合键** ```autohotkey LCtrl & Space::MsgBox("你按下了左Ctrl+空格") ; 左Ctrl+空格组合 ``` #### **4. 热键冲突检测** ```autohotkey ^b:: { if (A_TimeSincePriorHotkey < 200) { MsgBox("你按得太快了!") Return } Send "^b" } ``` --- ### **五、最佳实践与注意事项** 1. **符号规范** - 使用 **英文符号** `{}`,避免中文符号 `{}` - 每行代码以 `;` 开头表示注释 2. **释放修饰键** 长时间按住修饰键可能导致意外行为,建议使用 `Send "{CtrlUp}"` 显式释放: ```autohotkey ^!z:: { Send "^!z" ; 触发操作 Send "{CtrlUp}" ; 释放 Ctrl 和 Alt Send "{AltUp}" } ``` 3. **热键冲突排查** - 使用 `#HotIf` 限制热键作用范围 - 通过 `KeyHistory` 查看最近触发的热键(按 `Win+Alt+V`) --- ### **六、调试与测试** 1. **脚本调试** - 右键任务栏 AHK 图标 → **Open** → **View Hotkeys** 查看已注册热键 - 使用 `MsgBox` 或 `ToolTip` 输出中间变量值 2. **错误处理** 使用 `Try/Catch` 捕获异常: ```autohotkey ^k:: { Try { Run "C:\NonExistentFile.exe" } Catch Error { MsgBox("程序不存在!") } } ``` --- ### **七、完整示例脚本** ```autohotkey ; 全局保存当前内容 ^!s:: { Send "^s" Sleep 300 Run "D:\Backup" } ; 快速打开常用文件夹 #n::Run "C:\Notes" ; 窗口管理 #Left::WinMove(0, 0, A_ScreenWidth//2, A_ScreenHeight) ; 左半屏 #Right::WinMove(A_ScreenWidth//2, 0, A_ScreenWidth//2, A_ScreenHeight) ; 右半屏 ; 仅在记事本中生效的快捷键 #HotIf WinActive("ahk_exe notepad.exe") ^d::Send "{Delete}" #HotIf ``` --- ### **八、学习资源** - **官方文档**:[AutoHotkey v2 文档](https://www.autohotkey.com/docs/v2/) - **社区论坛**:[AutoHotkey 中文社区](https://www.autoahk.com/) - **代码仓库**:[GitHub 热门脚本库](https://github.com/search?q=autohotkey+v2) 通过上述内容,你可以快速掌握 AutoHotkey v2.0 全局快捷键的核心用法。建议从简单热键开始实践,逐步尝试复杂逻辑!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值