AutoHotKey常用命令

变量名

说明

A_LoopField

存在于解析循环中,整数为什么被解析成单个字符串

A_LoopReadLine

A_Index

当前循环重复的次数,第一次执行时为1

Loop

Loop[,count]指定重复次数

Loop . Parse , InputVar[,Delimeters , OmitChars]

Parse:必须使用单词Parse

InputVarL需要被解析的变量,不要用百分号将变量名包起来,除非该变量的内容就是需要被解析的

Delimeters:分隔符,参数为空或省略,则依次读取每隔字符

使用CSV,则按都好进行解析

OmitChars:忽略字符,这些字符会从解析出来的字符串的开头和结尾部分移除

Loop

Loop,Read,InputFile[,OutputFile]

Read:必须是READ

InputFile:输入文件

A_LoopReadLine:存在于文件读取循环中,是一行内容,但是去除换行符

A_Tab

该变量等于tab字符

StringSplit

StringSplit,OutputArray,InputVar[,Delimiters , OmitChars]

用指定的分隔符的将一个字符串分割为一个字符串数组

变量

变量以字符串形式存储,只包含数字的变量进行数学运算时,自动转换为数值

除了函数中变量,其他变量都是全局的,变量无需声明

变量名:不区分大小写

变量赋值:

方法1:等号运算符,指定未引用的原义字符串或百分号的变量的内容

数组

数组0号下标中存储的是数组的长度,因此数组的元素是从1开始的

RegExMatch

确定一个字符串中所包含的匹配模式

解析以什么开头,什么结尾

RegExMatch

RegEx

失败:0

成功:非0

学习目录扫描获取文件名

Files and folders loop

逐个遍历文件和文件夹

所谓的数组其实是前缀一样,后缀为连续数字的连续变量而已,因此称之为伪数组例如:

Array1

Array2

……

StringSplit创建的也是伪数组

A_LiipFileExt

文件的扩展名,不包括.号

A_LoopFileName

当前取得的文件或文件夹名称(不带路径)

A_LoopFileLongPath

这个的绝对路径在相对路径指定的情况下,会先使用相对路径作为前缀,再加上当前文件名,拼接成绝对路径,会有问题。

需要切换进入目录

遍历文件

Loop , FilePattern [, IncludeFolders? , Recurse?]:获取指定的文件或文件夹,一次一个

FilePattern:单个文件或文件夹的名称,或一个通配符类型

IncludeFolders? 使用下面的数字,或留空使用默认

0:默认不获取文件夹

1:获取所有匹配通配符类型的文件和文件夹

2只获取文件夹

Recurese?

可在文件-Loop里特有的变量

A_LoopFileName:当前文件名称,无路径

A_LoopFileExt:文件的扩展名

A_LoopFileFullPath:当前文件的完全路径,如果FilePattern是相对路径,那么他也是相对路径

A_LoopFileLongPath:文件绝对路径

#Include

#Include FileOrDirName

File:如果未指定绝对路径,则认为在脚本自己所在的目录

脚本表现地翱翔被包含的文件内容就在#Include指令的位置出现,非重复包含

作用:加载外部文件的函数

Return

Return[, Expression]

FileAppend

FileAppend[,Text , FileName]:在文件的结尾处追加文本,其实就是文件的写操作

需要验证FileAppend所需要写入的文件是否已经创建好了才能追加内容

如果文件不存在,FileAppend会先创建文件,然后追加内容

似乎文件路径能用变量去替代,注意加上””

sPath := "E:\"

sSub := "name"

;注意变量与字符串拼接,变量不需要加双引号

sPath3 = %sPath%%sSub%.txt

Object

需要查看autoHotKey是否有结构体,最好将读取配置文件的部分用结构体或者类进行封装一下

SplitPath

SplitPath , InputVar [, OutFileName , OutDir , OutExtension , OutNameNoExt , OutDrive

InputVar:待解析的文件名的变量名称

OutFileName:不带路径的文件名,包含扩展名

OutDir:文件目录

OutExtension:扩展名

OutNameNoExt:不带路径和扩展名的文件名

OutDrive:驱动器+冒号

变量

关于变量何时加上双引号?

函数在表达式中被调用,则参数列表中的变量名不要加上百分号,原义字符串加上双引号。

ByRef

引用变量

A_LoopFileFullPath

当前取得的文件的完全路径,但是如果FilePattern包含了一个相对路径,那么这里得到的路径也是相对的

Loop , FilePattern

Loop , FilePattern[,IncludeFolders? , Recurse?]

变量赋值

path1 := "a.txt"

;path2 := path1

;path2 = %path1%

path2 = path1

MsgBox , %path2%

如果想将另外一个变量赋值给另一个变量:要么用 := 形式,不要加%%

要么用 = 形式,加上%%

FileDelete

FileDelete , FilePattern

FilePattern:等那个文件的名称

要删除文件夹用FileRemoveDir

global

函数内部引用或创建的变量默认是局部的,所有局部变量每次在函数被调用时都是以控制开始

引用全局变量

global fileName

StringReplace

StringReplace , OutputVar , InputVar , SearchText [,ReplaceText,ReplaceAll?]

InputVar:需要进行替换的字符串变量名,不要在变量名外加百分号

ReplaceAll? 如果省略:第一个匹配,如果写成:1,A或All,则全部匹配

Clipboard

内置变量,存储了剪贴板中可以用文本形式表现的内容

用法:用前先清空剪贴板

ClipboardAll

存储了剪贴板中所有内讧,例如图片和带格式的文本

InStr

InStr(inputStr, searchStr [,CaseSensitive = false,StartingPos = 1])

返回inputStr中首个匹配searchStr的字符串位置

找不到:返回0

StaringPos = 0,则默认从右边开始搜索

正则表达式

用反斜线,让元字符(转义字符)失去特殊含义,在字符组内转义字符无效

元字符用法:

.:任意单字符

*:任意多字符

?:可选项

+:>=1次

{min,max}:至少min次,至多max次

{num}:num次

[…]:[a-z]

digit:数字0-9

\d:单个数字

^:脱字符,搜寻其实位置

$:美元符号,匹配目标字符串末尾

StringGetPos

StringGetPos , pos , InputVar , SearchText[,L#|R#,Offset]

pos:返回的子串在字符串中位置,从0开始

L#|R#:省略该参数,从左边开始查找,为1或R时,从右边开始查找

Offset:偏移量,从左边或右边开始体哦啊过多少个字符再开始查找

StringLeft/Right

从字符串左边或右边开始提取一定数量的字符

StringLeft , str , inputVar , count

从一个字符串的左边或右边开始提取一定数量的字符

StrLen

获取字符串长度

StrLen(String)

SubStr

与InStr搭配使用

SubStr(String , pos [,length])

从pos起始点开始向右复制不超过length长度的子串

1代表首字符

true,false

caseSensitive := true,有真假返回值

引用

x := y两者指向同一个对象

对象

三个功能:取值,设值,调用方法啊,这里的对象说白了就是映射map

AutoHotKey版本:1.1.19.02

class ClassName extends BaseClassName

{

InstanceVar := Expression

static ClassVar := Expression

class NestedClass

{

}

Method()

{

}

}

创建对象并将其存储到全局,每个类的完整名称存储在object._Class

每次使用new关键字创建类的新实例时都进行求值

调用基类的方法用base.Method()

使用new关键字创建派生对象,会调用基对象的__New()方法

其实这里的__New()就是构造函数

销毁对象用:__Delete

元函数:由对戏那个的基定义的方法,作用:明确定义接受未知键的请求时

如果obj.key尚未赋值,那么会调用__Get元函数,

obj.key := value调用__Set

obj.key()调用 __Call()

IniRead

读取标准格式的,ini文件中的值

IniRead , value , FileName [,Section , key , Default]

这些函数仅支持UTF-16编码的Unicode文件

value:键对应的值

FileName:.ini文件名

Section:ini文件中的段名,包含在方括号中的标题短语

key:键名

Default:如果省略,参数默认为ERROR(当没有找到制定的键时)

格式:

[SectionName]

Key=Value

ByRef参数

是引用参数,传递大字符串解决了内存

对象字段在ByRef中不会被视为变量

class

能否有多个构造函数,不能

while

可以使用

ReadLine()

Line:=File.ReadLine()

FileOpen

返回函数对象

MouseClickDrag

MouseClickDrag , WhichButton , X1 , Y1 , X2 , Y2[,SPeed , R]

WhichButton:要点击的按钮

X1,Y1:拖动其实位置x/y坐标

X2,Y2:拖动的目标位置

Speed:移动鼠标的速度

R:会把X1和Y1坐标视为距离当前鼠标位置的偏移

StrSplit

Array := StrSPlit(String [,Delimiters , OmitChars])

比用StringSplit好,将字符串切分后保存到数组中

对分割\t字符串有效,对于分割,字符串无效

A_Tab

制表符

A_Space

空格算法

+   热键

发送SHIFT键击

^

发送CONTOL键击

{F9}

{F9}表示F9键

s

发送s键击

{PrintScreen}

Print Screen

Send , +{F9}

发送Shift+F9

^s

发送Control+s

Exit

终止当前线程

ExitApp

完全终止持久娙的脚本

FileMove

功能:只移动文件

移动整个文件夹的内容

FileMoveDir

功能:移动文件夹及其所有子文件夹和文件,还可以重命名文件夹

FileMoveDir , Source , Dest[, Flag]

参数:

Source:源目录的名称(不含反斜线)

Dest:目录的新路径和名称(不含反斜线),Dest是目录在移动后使用的实际路径和名称,不是Source移动后保存的目录。

本质:就是把Soure下面所有内容放到Dest下面,然后把整个Soure目录删除

Flag:

0, 默认:不覆盖现有文件,如果Dest名称的文件已经存在,操作失败(不用)

1, 覆盖现有文件,但不删除Dest中没有被Source目录中文件覆盖的其他子目录或文件,如果存在相同文件夹,那么Soure会被已入这个文件夹中不覆盖它

2, 覆盖(就用这个)

R,重命名目录而不一定它,完全成功或完全失败就用它:不希望部分移动,已存在则失败

ExitApp

作用:无条件终止脚本

形式:ExitAPp[,ExitCode]

参数:

ExitCode:-2147483648 ~ 2147483647之间的整数,脚本退出时返回给他的调用者,默认为0,表示成功

Gosub

功能:跳转到制定的标签执行,直到遇到Return

形式:Gosub , Label

线程

含义:事件调用的执行流程,被定义为当前线程。当前线程可以再它自身子程序或由哪个子程序调用其他子程序中执行命令。

注意:AutoHotKey不支持多线程,启动当前线程,其余线程进入休眠状态。

当前线程结束时,最近终端的线程将恢复执行

实例:热键,SetTimer子程序

SetTimer

功能:以指定的时间间隔自动并重复运行子程序

形式:SetTimer[,Label , Period|On|Off,Priority]

参数:

Label:跳转目标

Period|On|Off:

On”以原来的周期重新启用之前禁用的计时器,不存在就创建

Off:禁用现有计时器

周期:把次参数作为上次Label子程序启动后必须经过的毫秒数来创建计时器

WinClose

作用:关闭指定的窗口

形式:WinClose [,WinTitle , WinText , SecondsToWait , ExcludeTitle , ExcludeText]

参数:

WinTitle:窗口标题或识别目标窗口的其他条件

WinText:窗口文本子字符串

SecondsToWait:省略或空,则不等待,如果为0,等待0.5s

如果窗口没有关闭,脚本会继续执行

ExcludeTitle”标题中含有此参数值的窗口将被排除

ExcludeText:文本中含有此参数值的窗口将被排除

注意:此命令发送关闭消息到窗口,结果取决于窗口(可能询问是否保存),多个匹配窗口,则会关闭最上面的窗口

PosMessage

含义:关闭窗口的另一种方法是发送消息,类似于关闭窗口标题栏上的关闭按钮

WinKill

功能:如果WinClose无法关闭窗口,可以用WinClose强制关闭

形式:WinKill[,WinTitle , WinText , SecondsToWait , ExcludeTitle , ExcludeText]

注意:此命令首先会用短暂时间尝试正常关闭窗口,若失败,则会终止窗口进程来强制关闭窗口

已经能实现关闭

WinWaitClose

SendInput

速度比Send快,其他窗口没有机会弹出并打断正发送的键击

把程序里面的Sedn都改成SendInput试试

1.10科学计数法,连续两次文件名无法输入,而且似乎输入完文件名到点击打开按钮之间间隔太短,

输入法出现V

WinWait

形式:WinWait[,WinTitle , WinText , Seconds , ExcludeTitle , ExcludeText]

功能:等到指定的窗口出现

参数:

Seconds:超时前等待描述,超时后设置ErrorLevel为1,留空表示无线等待,指定0等于0.5

ErrorLevel:表示命令执行成功与否的内置变量,0表示成功

WinWaitActive

功能:等到制定的窗口处于活动或不活动状态

形式:WinWaitActive[,WinTitle , WinText , Seconds , ExcludeTitle , ExcludeText]

参数:

Seconds:超时前等待的描述,超时后设置ErrorLevel为1,留空表示无限期等待,制定0等于0.5

总结:凡是关于等待的都有超时时间

IfWinExist

功能:检查是否存在匹配的窗口

形式:IfWinExist[WinTitle , WinText , ExcludeTitle , ExcludeText]

SetTitleMatchMode

形式:SetTitleMatchMode , MatchMode|Fast|Slow

MatchMode:

1:窗口标题必须以指定的WinTitle开头

2:窗口标题的某个位置必须包含WinTitle

3:窗口标题必须转却匹配WinTitle

RegEx:改变WinTitle为正则表达式

默认是1:匹配开头

因此:我的关闭超级画板其实

IsObject

形式:IsObject(expr)

作用:确定值是否为对象

对象类型:对象,文件,函数

AutoHotKey的那些事儿:(一)、AutoHotkey常用命令相关推荐

  1. AutoHotKey 常用命令及示例

    一.示例(自动打开QQ声音) Loop ;循环体 {WinWait, 与 qq009 交谈中,IfWinNotActive, 与 qq009 交谈中, , WinActivate, 与 qq009 交 ...

  2. [AHK]AutoHotKey 常用命令及示例

    一.示例(自动打开QQ声音) Loop ;循环体 { WinWait, 与 qq009 交谈中, IfWinNotActive, 与 qq009 交谈中, , WinActivate, 与 qq009 ...

  3. kafka创建topic_一网打尽Kafka常用命令、脚本及配置,宜收藏!

    前言 通过前面 7 篇文章的介绍,小伙伴们应该对 Kafka 运行工作原理有一个相对比较清晰的认识了. Kafka是什么?一起来看看吧! Kafka 安装及简单命令使用 Kafka中消息如何被存储到B ...

  4. 一网打尽Kafka常用命令、脚本及配置,宜收藏!

    前言 通过前面 7 篇文章的介绍,小伙伴们应该对 Kafka 运行工作原理有一个相对比较清晰的认识了. Kafka是什么?一起来看看吧! Kafka 安装及简单命令使用 Kafka中消息如何被存储到B ...

  5. Linux(三)常用命令

    1.基本命令 前面已经搭建好了虚拟机,现在来利用之前搭建的虚拟机来复习一些常见的命令.当然·Linux的命令很多,能记住我们日常用的就很不错了,记不住的可以去官网查.也可以参考一下鸟哥的私房菜命令手册 ...

  6. Linux 常用命令合集

    常用命令 艿艿:这一小节会非常非常非常长,当做温故知新吧. 另外,面试官也可能会问,你熟悉 Linux 么?你平时使用哪些 Linux 命令.酱紫的连环炮~ 当然,建议重点看下 「性能相关」 小节. ...

  7. Kubectl 常用命令, 开发人员常用k8s命令

    Kubectl 常用命令: 什么是常用,我用的,就是常用的

  8. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  9. 客快物流大数据项目(十五):DockeFile常用命令

    目录 DockeFile常用命令 一.FROM 二.​​​​​​​MAINTAINER 三.​​​​​​​RUN

最新文章

  1. HashSet中的add()方法( 四 )(详尽版)
  2. python与编码方式
  3. php面向对象中的魔术方法中文说明
  4. 20155313 2016-2017-2 《Java程序设计》第三周学习总结
  5. github设置仓库可见性 私人仓库设置
  6. 【Makefile由浅入深完全学习记录2】初识 makefile 的结构
  7. 面试鹅厂,我三面被虐的体无完肤……
  8. ZYI PHP授权系统开源
  9. hive python脚本,Hive调用Python脚本错误
  10. 解决Windows Server2008 R2中IE开网页时弹出阻止框(Windows Server2008网页无法打开的问题)...
  11. base64图裁剪 php_3分钟短文 | 有挑战!PHP用1个函数实现post请求,你用哪个?
  12. python查看数据集的维度、大小_Python数据分析 - numpy
  13. python 遍历文件夹文件代码
  14. 《Unix编程艺术》chm 电子书下载
  15. [转载]斐讯K2 A2版免TTL刷BREED不死Bootloader
  16. bzoj5470 / P4578 [FJOI2018]所罗门王的宝藏//(尚未修正)
  17. 浅读C Primer Plus——C语起源
  18. 教育界杂志教育界杂志社教育界编辑部2022年第24期目录
  19. 人耳能听的声音范围与各种发音的频率范围
  20. Java入门教程:最全面最简单的Java基础教程

热门文章

  1. Nexus环境安装部署及使用
  2. java正则包含特殊字符_java – 捕获由特殊字符嵌套/包含的正则表达式组
  3. 电口模块和光模块有什么区别?
  4. 王阳明心学层级图——适合内心困惑的人了解
  5. tcpdump man 手册页的详细中文翻译
  6. 需要给变量赋缺省值吗?
  7. 卷积码树状图怎么画_卷积码是什么 卷积码编码原理介绍【图文】
  8. 计算机是如何存储数字的?
  9. input设置点击无边框_设置Word页眉页脚奇偶页不同
  10. 【LaTeX 教程】01. LaTeX 简介与安装