AHK入门之热键和热字串

# 前言

## 什么是AHK?

AHK是Auto Hot Key的首字母缩写,它是一种脚本语言,它让用户能够快捷或自动执行重复性任务。
详细请点 百度百科的Autohotkey,或者 AutoHotKey的维基百科 。

## 如何学习AHK。

首先AHK作为一门偏小众的语言,网上很少有视频讲解,所以我们要充分利用好它的手册。
其次多加练习。这也是学习每门语言必走的路。
幸好还是找到了一个讲的不错的教学视频。

  • 链接:http://pan.baidu.com/s/1slJ28aD 密码:xg8u [百度云盘]
  • 教程:AHK博客
  • 视频:https://yunpan.cn/cR7eYzAieTXwk 访问密码 4f84 [360云盘] 注:该视频来自上面教程博客中的资源。

# 使用

首先认识两个关键字。

## 热键和热字串。

### 热键

内容:当按下特定的按键或者按键顺序或者按键组合时激活某个或者某系列动作。

表示方式: (按键1)...(按键2)::(两个冒号)
按键x是指所选择的快捷键。比如

#q::    ; # 为 按键1, q 为 按键2。

号键指代的是win键,所以上面代码的意思是当你按下win键和q键时激活一个动作。

比如

#q::          ;按下win键和q键时激活运行记事本这个动作。
run Notepad   ;run为AHK中一个命令,相当于C语言中的关键字或者说是函数。还有msgbox等等。
return        ;return为返回值,在存在多个热键时需使用,不然热键中会起冲突。

注意:在AHK中是不区分大小写的。所以run和RUN和Run或RUn或其他作用是一样的。
误例:请尝试设置多个热键,并且每一个热键末端不加return,试试会有什么情况发生。

#### 几个命令

run:运行程序或者文档或其他

 > + 比如: run notepad       //运行记事本
 
Msgbox:显示带两个按钮的对话框 (是 和 否)对话框中可加内容。

 > + 比如: Msgbox,你好吗?  //显示你好吗?的对话框。
 
Send :在当前窗口输入文本内容。

 > + 比如: send how are you? //在当前窗口输入how are you?

### 热字串

内容:扩展或者说自动替换文本,当然也可以映射任何脚本动作。
表示方式
::(被替换内容)::(替换内容)
举例:
自动替换:

::hay::how are you?    ;当你输入hay时自动替换为how are you?
::nh::你好             ;当你输入nh时自动替换为你好

映射脚本:

::np::
run Notepad           ;当输入np加空格时激活运行记事本这个动作。
return
::nh::
send 你好。           ;在当前窗口输入你好。 
return               

误例:请尝试使用多个映射脚本和自动替换的组合,每个映射脚本末端不加return,试试会有什么情况发生。


### 自定义按键

内容:用来连接任何两个或多个按键组合成一个新的按键。
命令:&
内容:(按键1)&(按键2)&...&(按键n)

q&n::                          ;按下q和n
run notepad                    ;激活打开记事本这个动作。
return

## 全局变量和局部变量

命令:#IFwinactive
表示方式:#IFwinactive (在什么窗口)(热键或热字串)
举例:

全局变量:

#q::          ;按下win键和q键
run Notepad   ;** 任意窗口**激活打开记事本这个动作
return        

局部变量:

#IFwinactive 新建文本文档.txt - 记事本  ; 在**新建文本文档.txt - 记事本**窗口下
#q::                                  ;按下win键和q键
run Notepad                           ;激活打开记事本这个动作
return  

注意:同样不区分大小写。比如ifwinactive等等。
尝试一下。

# 总结

关键字:

  • 热键 : (按键1)...(按键2)::(两个冒号)
    热字串 : ::(被替换内容)::(替换内容)
  • 命令:send , run , msgbox ,ifwinactive,&
  • 全局和局部变量
  • 自定义按键 : &

注意事项:

  • AHK中不区分大小写:即run和RUN没有区别。
  • 考虑你是想要在全局还是局部中激活动作。

更多内容和命令请参考视频或者手册。


# 参考

  • AHK教程

  • AHK的维基百科

  • AHK博客

  • Autohotkey的百度百科

你可能感兴趣的:(AHK入门之热键和热字串)