news 2026/10/30 6:45:28

autoHotKey、windows自动化快捷键工具

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
autoHotKey、windows自动化快捷键工具

文章目录

      • 2.0和1.0版本的区别
      • 示例-剪映中f1映射右方向键
        • 示例-剪映中按f9触发弹框
    • 示例-拳皇97
        • 站a
        • 下b(难)
        • 前冲
        • 示例-帧数计数器
      • 常见用法
        • `#`(井号)的作用
        • `::`(双冒号)的作用
        • 常用指令
        • 注释
        • 特殊键有哪些
        • 是否支持多开?
    • 其他
      • 文档

autoHotKey是一款windows自动化快捷键工具,有1.0和2.0版本,推荐2.0。

本来想用这个编辑拳皇宏的,实测效果根本达不到要求,只能做些简单的事情了。

2.0和1.0版本的区别

项目v1 写法v2 写法
热键F1::F1:: { ... }
结束需要return多行热键用{}包起来,不再需要return
发送按键Send, {a down}{b down}Send "{a down}{b down}"
变量%var%var
赋值=:=
条件If var = 1if (var = 1)
错误处理ErrorLeveltry / catch

示例-剪映中f1映射右方向键

#Requires AutoHotkey v2.0;仅在剪映窗口处于前台激活状态时,热键才生效#HotIfWinActive("ahk_exe JianyingPro.exe")F1::{Send"{Right}";如果需要更精准的按键间隔,可以加上 Sleep50(等待50毫秒)}#HotIf
示例-剪映中按f9触发弹框
#Requires AutoHotkey v2.0#HotIfWinActive("ahk_exe JianyingPro.exe")F9::{MsgBox"你刚刚按下了 F9,剪映当前在前台。"}#HotIf

示例-拳皇97

站a
{Send"{j down}"Sleep(36)Send"{j up}"}
下b(难)
前冲

注:外部按键不能和宏冲突,否则宏定义优先。
N键触发,效果为前跑。

#Requires AutoHotkey v2.0;测试站轻拳 v2 版本#HotIfWinActive("Kawaks")N::{Send"{d down}"Sleep(30)Send"{d up}"Sleep(45)Send"{d down}"Sleep(80)Send"{d up}"}return#HotIf

实测成功率60%左右,有时跑不起来,搞不懂什么机制。

示例-帧数计数器

需求:
1、winkawaks模拟器中,shift+空格,按一下帧数加1,来实现统计帧数。
2、当按shift+N时,重置为第1帧(用于找到关键点后的后续统计)。

注:这里用到了gui界面,值得参考。

代码:

;winkawaks_frame_v3.ahk;AutoHotkey v2#Requires AutoHotkey v2.0#SingleInstance Forceframe:=0;创建悬浮数字窗口 frameGui:=Gui("+AlwaysOnTop -Caption +ToolWindow +E0x20")frameGui.BackColor:="000000"frameGui.SetFont("s30 bold cWhite","Microsoft YaHei");宽度适当加宽,防止文字显示不全 frameText:=frameGui.AddText("w300 h50 Center","第 0 帧");位置向左平移,靠右上角 frameGui.Show("x"(A_ScreenWidth-800)"y200 NA")#HotIfWinActive("ahk_exe WinKawaks.exe");Shift+空格:透传给游戏并计数+Space::{global frame,frameText Send"{Blind}{Space}"frame++frameText.Text:="第 "frame" 帧"};Shift+N:重置为1+N::{global frame,frameText frame:=1frameText.Text:="第 1 帧"}#HotIf

效果如图:

常见用法

写法含义示例
F1::按 F1 触发F1::Send "{Right}"
^a::按 Ctrl+A 触发^a::Send "你好"
!a::按 Alt+A 触发!a::Run "notepad"
#a::按 Win+A 触发#a::MsgBox "Hi"
;注释,不会被执行; 这是注释
Sleep 500等待 500 毫秒Sleep 500
Run "程序路径"打开程序或文件Run "D:\Code"
MsgBox "文字"弹出提示框MsgBox "测试"
Send "文字"模拟输入文字Send "hello"
Send "{Right}"模拟按右方向键Send "{Right}"
#(井号)的作用

1、#+指令
2、#+快捷键

::(双冒号)的作用

::(双冒号)用来定义快捷键,左边是快捷键,右边是定义的内容。

如: F1::Send"{Right}"按f1时发送right(按键)指令。 F1# 定义的快捷键::# 快捷键标志Send# 快捷键对应的操作
常用指令
指令作用例子
Send模拟按键Send "{Right}"、Send "{Enter}"
SendText发送普通文本SendText "你好"
Run打开程序、文件或网址Run "notepad.exe"
Sleep等待一段时间Sleep 500表示等 500 毫秒
MsgBox弹出提示框MsgBox "测试"
WinActivate激活指定窗口WinActivate "剪映"
WinWaitActive等待某个窗口激活WinWaitActive "ahk_exe xxx.exe"
WinClose关闭窗口WinClose "记事本"
WinMove移动或调整窗口大小WinMove "A", 0, 0, 960, 1080
MouseMove移动鼠标MouseMove 500, 300
Click模拟鼠标点击Click
Loop循环执行Loop 3 { ... }
if / else条件判断if (x = 1) { ... }
注释

1、;开头表示单行注释
2、/* */表示多行注释

;这是单行注释/* 这段代码暂时不用 */
特殊键有哪些

send后面需要用{}(大括号)包起来的特殊键如下。

写法含义
{Enter}回车
{Tab}Tab
{Space}空格
{Escape}/{Esc}Esc
{Backspace}/{BS}退格
{Delete}/{Del}删除
{Up}/{Down}/{Left}/{Right}上下左右方向键
{Home}/{End}行首 / 行尾
{PgUp}/{PgDn}上翻页 / 下翻页
{F1}~{F24}功能键
{PrintScreen}截屏键
{Insert}/{Ins}插入键
{CapsLock}/{NumLock}/{ScrollLock}大小写、数字锁、滚动锁
{LWin}/{RWin}左/右 Win 键
{LAlt}/{RAlt}左/右 Alt
{LShift}/{RShift}左/右 Shift
{LControl}/{RControl}左/右 Ctrl
是否支持多开?

支持多开,如果多个按键有冲突,会覆盖。

例如:a.ahk和b.ahk都定义了同一热键,谁最后加载谁生效。
注:如下两个操作都可以加载
1、启动脚本
2、reload脚本# 别忽略掉这个

其他

文档

官网地址(可以访问,速度不算快,但是够用):
https://www.autohotkey.com/
2.0版本文档():
https://wyagd001.github.io/v2/docs/

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/30 6:45:25

健身器材批发行业客户筛选的技术思路和实践方法

健身器材批发行业的客户筛选,可以用行业和地区组合筛选的思路来实现。刚入行健身器材批发销售,找客户最主要的难点是什么?健身器材批发的客户主要是健身房、健身工作室这类需要采购跑步机、哑铃架的场所,不像写字楼企业那样集中在…

作者头像 李华
网站建设 2026/10/30 6:44:26

实验2:基于TuGraph的Epinions电商信任网络图查询与图算法分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/30 6:40:37

NC|微尺度空间碎片化改变细菌对抗生素的响应

摘要 多数细菌生活在碎片化的微尺度环境中,而抗生素效力通常在充分混合的体系中定义。本研究表明,仅微尺度空间碎片化本身,就能以确定性的方式促进抗生素暴露下的细菌存活。粗粒化理论模型预测,在总体细胞密度和抗生素浓度固定时&…

作者头像 李华
网站建设 2026/10/30 6:31:36

应用层协议HTTP与HTTPS

我们看到大部分网址前面都有一个 http 或者 https,它其实是应用层的协议方案名,本文讲的就是其中的 http。协议这种东西,虽然能自己定义,但是已经有大佬定义了一些非常好用的,我们可以直接参考使用。在互联网世界中&am…

作者头像 李华