使用 AutoHotkey 热字串简化你的重复工作 不仅仅是扩展热键功能
AutoHotkey (AHK) 很多小伙伴都听过他的大名。AHK 是一个 Windows 下的开源、免费、自动化软件工具。
源码库: https://github.com/Lexikos/AutoHotkey_L
中文文档: http://ahkcn.sourceforge.net/docs/AutoHotkey.htm
顾名思义,AHK 肯定与快捷键有关。没错,我最初也认为他是用来填补 Windows 全局快捷键的工具。但他的功能要远超出他本身名字的范畴。(起个好名字多么重要!)
它可以简化你的重复性工作,一键自动化启动或运行程序。
提供 Text extend 功能,类似于输入法中的自定义短语,但是可以自定义编程。
通过按键映射,模拟鼠标,模拟手柄,模拟任何实体输入工具。
AHK 可以导出为 exe 程序,直接分发。
基于以上特性,自然联想到,AHK 可以用来做外挂啊!!!
所以,喜欢玩游戏的同学,其实你很有可能已经在无形之中使用过 AHK 了。
如果你对脚本语言有所了解,那学习 AHK 易如反掌。浏览一遍官方 Quick Start,基本就可以上手编写脚本了。
虽然,AHK 脚本饱受争议,但对于我这种懒人来讲,一切能代替重复工作的工具,都是效率神器。(真香!)
注意:由于 AHK 是模拟控制器输入,在执行力自动化脚本之前,一定要将输入法调整为英文状态;如果没有在编写脚本的时候,手动指定作用域,请一定要确认当前焦点。
为什么选 AHK
我是个偏好 Markdown 写作风格的人,不喜欢在写作过程中被排版等其他因素打断思路。而且具有精神洁癖,喜欢使用优雅的开源工具。(懒!)
最初的想法是用 python 接受输入,然后自动输出格式化文本,手动复制粘贴美滋滋。但仅为了这一个功能,配置 python 再写一堆代码,想想就觉得很蠢。之后又想直接写个 shell 脚本吧,但始终没决定用什么 shell,外加我又是个脚本苦手。(蠢!)
Windows 历史剪贴板:当大量文本存在于剪贴板内时,找到 Pin 并不是一件容易的事。(烦!)
输入法自定义短语:可以实现文本扩展功能,但是可定制性等于 0。
被逼无奈踏上自我救赎之路!
AHK 的热字串示例:
:*:;img:: ; YYYY/MM/ as path, 'clipboard'.png, output an .
landianImage := ''
SendRaw, %landianImage%
Return
AHK 的热键示例:
^#k:: ; CTRL + WIN + K, creat 'clipboard' link, open in new tab.
landianLink := ' ' . Clipboard . ''
SendRaw, %landianLink%
Return
AHK 的局限
由于 AHK 是模拟输出,所以实际与剪贴板内容交互时会存在意料之外的 bug。(坑!)
比如:剪贴板一大段内容中存在 #r
这两个字符,调用 Send
命令后,输出过程就相当于在键盘上按下了 Win + R
,然后将剩余的字符一个一个的输入进运行
窗口中。此外,AHK 默认情况下作用域仅限于当前活动窗口,所以一旦开启了中文输入法,调用 Send
命令后,就跟用脸滚键盘效果差不多。
所以,使用任何自动化工具时,都需要谨慎,做好数据备份。