相信大部分人都使用过windows系统,大部分的操作是通过键盘和鼠标来完成的。对于不同软件,键盘快捷键也千差万别。比如eclipse和idea的快捷键,好在idea有个keymap能选择eclipse键盘模式,映射eclipse的快捷键。但是大部分软件是没有互通的操作的。还有玩游戏的时候,一些连招操作需要鼠标和键盘有序配合才能实现,能不能自定义一套自己的输入习惯呢? [eclipse和idea部分快捷键对比] 这个东西就是AHK,全称AutoHotKey,是一种windows下的热键脚本语言,通过把常用的键盘鼠标操作编写成脚本语句(.ahk文件)来动态调用的方式避免了每次手动输入的重复操作,提高了使用计算机的工作效率。 PS:由于不需要太深的编程知识,本文只作简单介绍,有兴趣可以自行上AutoHotKey中文网[1]交流学习。 中国AutoHotkey发展史[2]AutoHotkey国内最早起源于2005年,兴起于2007年。2009 年 9 月,AutoHotkey 到了 1.0.48.05 版本(当前所称的经典版),但更新此时进入停滞状态。
宏宏(Macro)是一种批量处理的称谓。绝大多数情况下,“宏”这个词的使用暗示着将小命令或动作转化为一系列指令,作为一个单独命令完成一个特定任务。如Word就是使用宏语言Visual Basic将宏作为一系列指令来编写。除了宏语言,还有键盘宏。键盘宏在图形用户界面被交互式地使用。使用它们可以用简短的击键代替冗长的命令序列,并为重复性任务提供了一个简单的自动化形式。程序员的文本编辑器Emacs(“编辑宏”[Editing MACroS]的简称)是沿用这一思想的产物。事实上,大多数编辑器是由宏组成的。Vim也允许用户录制和播放简单的键盘宏。 AutoHotKey也是一种宏,利用一系列命令操作完成特定功能,减少和简化重复性工作。 前置条件要想自己编写ahk脚本,需要先去AutoHotKey官网[3]下载AutoHotKey并安装。 编写脚本在要存储脚本的文件夹下鼠标右键新建 右键新建的ahk文件,会多出三个菜单 我们首次选择 #n::Run Notepad
886:: 再见!;发送内容到活动 (最前面的) 窗口. return 这段代码的意思是(1)按住键盘Win+n(被称作热键)会立马打开一个新的记事本;(2)在QQ或任何允许文本内容的地方按下886(被称为热字串)会输出“再见!”。 编辑完成后保存文件,然后右键 语法通过上面的例子,可以发现语法规则不是太复杂,其中双冒号就是映射标志,类似于js里的函数字段function。双冒号左边是键盘,支持多个组合键,比如#(Win)和n。双冒号后面对应热键的输出结果,如果单行内容可以直接写,也可以换行连续书写多行,最后以return结尾。命令和变量的名称是不区分大小写的。'Run'等同于'run'。以下均来自国人翻译的AutoHotKey中文指南[4]。
变量AutoHotkey中没有明确的变量类型,只包含数字 (可以含有小数点) 的变量进行数学运算或比较时, 会被自动转换为数值。变量名不区分大小写,可以由字母, 数字以及# _ @ $标点组成。 要把字符串或数字保存到变量中,有两种方法:
MyNumber = 123MyString = This is a literal string.CopyOfVar = %Var% ; 和 = 运算符一起使用时, 需要使用百分号来获取变量的内容
MyNumber := 123 MyString := 'This is a literal string.' CopyOfVar := Var ; 和前面段落中与其作用相同的语句不同, 百分号不和 := 运算符一起使用. 后一种方法由于其更清晰并且与其他许多语言几乎一致的表达式语法,成为大多数人的首选方法。 获取变量的内容也有两种方法:
MsgBox The value in the variable named Var is %Var%.CopyOfVar = %Var%
MsgBox % 'The value in the variable named Var is ' . Var . '.' ; 使用句点连接两个字符串. CopyOfVar := Var 流程控制
if (x < y) { ...}if WinExist('Untitled - Notepad') { WinActivate}if IsDone { ...} else { ...}
以下循环体内都能使用 (1)Loop Loop {;无限循环 ... } Loop %n% {;循环n次 ... } (2)While while GetKeyState('LButton') { ... } (3)For ; 列出对象中的键值对: colours := Object('red', 0xFF0000, 'blue', 0x0000FF, 'green', 0x00FF00) ; 上面的表达式可以直接代替下面的“colours”: for k, v in colours s .= k '=' v '`n' MsgBox % s 其他AutoHotkey还有许多其他的语法和规则,还能操作磁盘文件、剪贴板Clipboard、创建图形GUI、MsgBox、InputBox对话框、数学计算、屏幕管理、注册表操作等等。 应用其实我一直认为不同的人使用相同的程序语言和规则,能玩出不同的花样,不得不说大家善于发掘!以下都是我用过感觉不错的AutoHotkey应用,大都文件很小。
在目标窗口(我一般用于cmd进程的程序)按下Win+Shift+z可以快速隐藏到托盘里,点击托盘图标能快速还原。适合现场部署带有不能关闭的cmd命令程序。
鼠标手势操作,很丰富,支持自定义,适合鼠标流的人群。(我还是坚实的键盘流😂)
小巧好用的鼠标手势。
国产软件,为常用操作建立捷径,支持云端存储和分享,还有很多人每天贡献新的动作库,需要登录,同时支持移动端。
自带的windows商店可下载,可对屏幕边缘进行操作,自定义热键和热字串。美中不足,也有可能是我本地环境问题,有时候会无故重置。
专业的快速启动工具,集成了翻译、中文文件首字母快速查找等功能,也是国人作品,适合键盘流。 (完) 参考资料AutoHotKey中文网: https://www./ [2]中国 AutoHotkey 发展史: https:///ahk-history-china.htm [3]AutoHotKey官网: https://www./ [4]AutoHotKey中文指: http://ahkcn./docs/ [5]traymond: https://github.com/fcFn/traymond [6]MouseInc: https:///project/mouseinc/ [7]Quicker: https://www./ [8]RunZ: https://github.com/goreliu/runz |
|