Autohotkey介绍

ahk_logo.png

AutoHotKey是啥嘞?

是脚本语言!

脚本语言又是啥类?

是啥嘞?
反正一句话说不清楚,但是我们在浏览网页时经常会弹出对话框,说当下浏览的网页脚本出现错误,问是否要继续运行该脚本。

那么“脚本”到底是啥嘞?

接下来,我们就谈一下脚本是啥玩意:

脚本(script),是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作批处理文件的延伸,是一种纯文本保存的程序,基本看不懂是啥玩意!一个“脚本”还没搞清楚是咋回事,又整出俩名词,宏又是啥嘞?批处理文件又是啥嘞?没关系哈,我慢慢跟你解释,直到你清楚为止。

脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。

由此可见,Autohotkey脚本都是纯文本文件, 其中包含了可由程序 (AutoHotkey.exe) 执行的文本行,是面向普通电脑用户的自由开源的自动化软件工具,它让用户能够快捷或自动执行重复性任务。 脚本中还可以包含热键和热字串,甚至完全由它们组成.

特点

  1. 体积小巧、语法简明、易学易用。开发环境简单,只需要一个不足 1M 的解释器和一个顺手的编辑器,就可以开发了。

  2. API 丰富。AHK 提供了很多桌面软件需要用到的 API,而且调用 Windows API 非常方便,这是很多其他脚本语言所无法比拟的。

  3. AHK 对热键、热字符串有专门支持,写起来非常容易,而这在其他语言基本上都要费费尽周折。

  4. AHK 没有官方自带或者第三方实现的完善的标准库,这样如果需要实现非内置的功能通常需要直接调用 Windows API 或寻找别人封装好的函数。AHK 语言本身并不强大,缺少很多现代语言所具备的高级特性,同时也缺乏对多线程等操作系统特性的支持。

AHK 的优点和缺点同样明显,我们需要慎重考虑,针对具体场景选择合适的工具。

脚本执行原理

程序会把脚本逐行加载到内存中, 每行最多可以包含 16,383 个字符. 在加载过程中, 脚本会被优化和检查. 将列出所有的语法错误, 更正它们后脚本才能运行.

脚本顶部 (自动执行段)脚本加载完成后,它会从顶行开始执行,直到遇到 Return 、Exit 、热键/热字串标签或脚本的底部(无论最先遇到哪个).脚本的这个顶端部分被称为自动执行段.

如果脚本不是持续运行的且不含有热键 、 热字串 、OnMessage 和 GUI。那么它会在自动执行段结束后终止. 否则, 它会以空闲状态继续运行, 从而对例如热键, 热字串, GUI事件 , 自定义菜单项和计时器 这些事件进行响应.

每个由热键,热字串,菜单项,GUI事件或计时器启动的线程都以在自动执行段设置的下列属性值作为默认值开始.如果没有设置,则使用标准的默认值(与下面每个页面中注明的一样): DetectHiddenWindows 、 DetectHiddenText 、 SetTitleMatchMode 、 SetBatchLines 、 SendMode 、 SetKeyDelay 、 SetMouseDelay 、 SetWinDelay 、 SetControlDelay 、 SetDefaultMouseSpeed 、 CoordMode 、 SetStoreCapslockMode 、 AutoTrim 、 SetFormat 、 StringCaseSense 、 Thread 和 Critical .

如果自动执行段执行了很长时间才结束 (或永不结束), 上面这些设置的默认值将在 100 毫秒后自动生效. 当自动执行段最终结束 (如果可能) 时, 在自动执行段末尾生效的那些设置才更新为默认值. 因此, 通常最好在包含热键,热字串,计时器或自定义菜单项的脚本顶部设置自己想要的默认值. 还要注意, 每个线程 会保存它自己的上述设置的集合. 在一个线程中对这些设置的改变不会影响其他线程 .

当前版本

AHK v1

AHK v1 是当前 AHK 的主流版本,也是官方网站下载地址中的版本。包含三个构建版本:

  1. Unicode 32-bit。32 位 Unicode 版本,如无特殊需求,推荐使用此版本。

  2. Unicode 64-bit。64 位 Unicode 版本,性能比 Unicode 32-bit 版本稍好,但占用更多内存。兼容性方面不如 Unicode 32-bit 版本。适合对性能敏感的场景使用。

  3. ANSI 32-bit 。32 位 ANSI 版本,对历史遗留下来的老 AHK 脚本兼容性较好。如果写新脚本,无需关注此版本。

用法示例

; 热键示例,按 Win + g 启动计算器
#g::
    Run, calc
return

; 热字符串示例,按 www 打开 AHK 官网
::www::
    Run, http://ahkscript.org/
return
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,653评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,321评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,833评论 0 324
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,472评论 1 266
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,306评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,274评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,658评论 3 385
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,335评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,638评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,697评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,454评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,311评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,699评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,986评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,254评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,647评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,847评论 2 335

推荐阅读更多精彩内容

  • 注:中文应用部分仍需更新。转者按:本文属于零基础入门专题教程,原发表于 Download!网络密技王第三期,后转载...
    amnesiac阅读 3,337评论 0 6
  • AHK(AutoHotkey) 是面向普通电脑用户的自由开源的自动化软件工具,它让用户能够快捷或自动执行重复性任务...
    陌辞寒阅读 3,707评论 0 5
  • 转者按:本文属于零基础入门专题教程,原发表于新浪博客,后被转载自太平洋电脑网,目前更新于善用佳软,作者 xbeta...
    amnesiac阅读 3,473评论 0 10
  • 转者按:本文属于零基础入门专题教程,原发表于博客中国(已失效),我曾转载到中文论坛,作者 yonken(此处是他现...
    amnesiac阅读 2,927评论 0 17
  • 作者:amnesiac 首发:官方论坛之中文版 对于绝大多数用户这个问题的答案都应该是 AutoHotkey_L,...
    amnesiac阅读 1,062评论 0 3