aardio 文档

ahk 库模块帮助文档

说明

aardio 中路径以斜杠开始表示应用程序根目录, 应用程序根目录在开发时指工程目录或工程外独立启动的文件所在目录, 发布后指 EXE 所在目录。

当我们用 aardio + AHK 开发时,可以在应用程序根目录下的 /AutoHotkey/Lib/ 目录下面放 AHK 的用户库文件。 如果创建了 aardio 工程,可以将这个 /AutoHotkey/ 目录设为内嵌资源目录(可生成独立 EXE 文件)。

如果在 aardio中 调用 ahk.import("libName") , aardio 会自动加载 /AutoHotkey/Lib/libName.ahk 的代码, 并转存到 AHK 加载该用户库的路径 %A_MyDocuments%\AutoHotkey\Lib*.ahk 。 然后在 AHK 中可以用 #include 加载这个库,注意库名是放在 < ... > 这对尖括号中间。 这个虽然叫用户库目录,其实是所有 AHK 程序公用的,所以最好放在子目录里,例如 ahk.import("aardio/libName")

在调用 ahk.run() 启动 AHK 脚本线程时,也会将应用程序根目录设为 AHK 设为 AHK 中的 %A_WorkingDir% 目录。 也就是可以在 AHK 中用 #include path/name.ahk 的代码导入 AHK 文件,这时要写文件后缀名,不能加 < ... > 这种尖括号。

ahk 成员列表 #

Autohokey v1.x H 版扩展库,
AHK v2.x 请改用 ahk.thread 扩展库。
请注意 AHK 使用的是 GPL 许可证,注意 GPL 有传染性。
Autohokey_H

ahk.* #

on 前缀的函数可在 AHK 内通过 aardio.函数名 调用。
如果 on 前缀的回调函数返回值为函数对象,则异步执行该函数,
其他返回值返回给 AHK 调用代码

在 AHK v1 中必须使用 #include 加载 aardio 模块。

ahk.addFile(脚本文件,是否允许重复加载,是否忽略错误) #

添加文件到正在运行的 AHK 脚本线程,
第三个参数可选0,1,2,1为忽略错误,2为忽略并移除加载的代码

ahk.addScript(脚本代码,false) #

添加文件到正在运行的 AHK 脚本线程,不等待脚本运行完成
调用此函数前必须先调用 run 函数启动 AHK 脚本线程,
否则不执行任何操作

ahk.addScript(脚本代码,true) #

添加文件到正在运行的 AHK 脚本线程,等待脚本运行完成
调用此函数前必须先调用 run 函数启动 AHK 脚本线程,
否则不执行任何操作

ahk.exec("字符串参数") #

运行脚本代码,成功返回true,失败返回false
调用此函数前必须先调用 run 函数启动 AHK 脚本线程,
否则不执行任何操作

ahk.executeLine #

用来执行之前通过 ahk.addScript 或 ahk.addFile 追加的脚本行

ahk.executeLine(行号,0) #

不运行,返回行号

ahk.executeLine(行号,1) #

运行到返回,返回行号
可选添加第三个参数为true,等待执行完成

ahk.executeLine(行号,2) #

运行到块结束,返回行号
可选添加第三个参数为true,等待执行完成

ahk.executeLine(行号,3) #

仅运行一行,返回行号
可选添加第三个参数为true,等待执行完成

ahk.findFunc("函数名") #

查找函数,返回函数指针

ahk.findLabel("标签名") #

查找标签,返回标签指针

ahk.getGlobal #

返回 AHK 中全局变量的值或指针,
注意应当在 AHK 中先用 global name := value 声明全局变量,
运行 AHK 脚本线程后才能调用此函数

ahk.getGlobal("变量名") #

返回 AHK 中全局变量的字符串值。
数值可可自动转为字符串。

ahk.getGlobal("变量名",true) #

返回 AHK 中全局变量的指针

ahk.import("字符串参数") #

导入 "/AutoHotkey/Lib/" 目录下的 AHK 库文件
例如 ahk.import("libName") 将会转换为加载 /AutoHotkey/Lib/Libname.ahk
aardio 会加载该文件并存为 AHK 支持的 %A_MyDocuments%\AutoHotkey\Lib\Libname.ahk
在 AHK 代码中可直接使用 #include 加载。

/AutoHotkey/Lib/ 可以是 aardio 工程内的内嵌资源文件,
以方便生成独立 EXE 文件。

注意 aardio 中路径以斜杠开始表示应用程序根目录,
应用程序根目录在开发时指工程目录或工程外独立启动的文件所在目录,
发布后指 EXE 所在目录。

ahk.jsonCall("函数名",) #

运行指定的函数
使用JSON传递参数并返回值,
在 AHK 中必须使用 #include 加载 aardio,json 模块

ahk.label #

用来运行脚本中的 Goto/GoSub 子程序

ahk.label(标签名,不等待执行结束) #

用来运行脚本中的 Goto/GoSub 子程序

ahk.pause("Off") #

取消暂停

ahk.pause("On") #

暂停

ahk.postCall("函数名",) #

运行指定的函数
可选添加一到十个参数,返回文本值
该函数立即返回不会等待函数执行完成
0为成功,-1为找不到函数

ahk.ready() #

是否正在运行ahk脚本

ahk.reload() #

重载启动 AHK 脚本线程,并等待启动完成,
可选用参数@1指定超时,以毫秒为单位,
执行成功返回 true, 脚本未运行返回 false 或 null

ahk.run #

启动 AHK 脚本线程,调用其他函数以后应当先调用此函数
默认会将应用程序根目录设为 AHK 中的 %A_WorkingDir%

aardio 中路径以斜杠开始表示应用程序根目录,
应用程序根目录在开发时指工程目录或工程外独立启动的文件所在目录,
发布后指 EXE 所在目录。

ahk.run(脚本,"/Debug",其他参数) #

启动 AHK 脚本线程,参数@2、参数@3 可省略
参数@! 可以是脚本代码,也可以是脚本文件路径
如果参数是脚本代码或单个斜杠(反斜杠)开始的应用内路径,
则支持用 aardio 模板语法在 AHK 代码中嵌入 aardio 代码。
返回线程句柄

注意 AHK 并不支持真的多线徎,创建线程为当前线程,
其他 AHK 创建的线程会停掉

ahk.sendCall("函数名",) #

运行指定的函数
可选添加一到十个参数,返回文本值

ahk.setGlobal("变量名","字符串值") #

对 AHK 中的全局变量赋值。
参数 @2 自动调用 tostring 转为字符串。
返回0表示成功,返回-1表示找不到变量,
注意应当在 AHK 中先用 global name := value 声明全局变量,
运行 AHK 脚本线程后才能调用此函数

ahk.setGlobal() #

对 AHK 中的全局变量赋值,
运行 AHK 脚本线程后才能调用此函数

ahk.terminate() #

停止 AHK 脚本线程,
可选用参数@1指定超时,以毫秒为单位,
执行成功返回 true, 脚本未运行返回 false 或 null

ahk.wait(false) #

等待 AHK 脚本运行结束

ahk.wait(true) #

等待 AHK 脚本启动运行,
只能在启动 AHK 脚本线程后调用,
否则会一直等待无法返回。

调用 reload 函数重启后必须调用此函数,否则后续调用会出现异常

Markdown 格式