可不用声明直接在此输入函数名并调用API函数
一、传入参数规则:
1、null参数不可省略
2、32位整数类型,小于32位的整数、以及枚举类型都可以直接在API参数中写数值。
3、对于任何数值类型的指针(输出参数)一律使用结构体表示,例如double * v 表示为{ double v }
4、数组使用结构体表示
5、所有结构体传给API的都是指针地址,都是输出参数并增加返回值
二、返回值规则:
1、返回值默认为int类型
2、可以使用[API尾标]改变返回值为其他类型
三、所有可用的【API尾标】:
::Shell32.ApiNameW() 切换到Unicode版本,字符串UTF8-UTF16双向转换
::Shell32.ApiNameA() 切换到ANSI版本,字符串不作任何转换
::Shell32.ApiNameL() 返回值为64位LONG类型
::Shell32.ApiNameP() 返回值为指针类型
::Shell32.ApiNameD() 返回值为double浮点数
::Shell32.ApiNameF() 返回值为float浮点数
::Shell32.ApiNameB() 返回值为C++中的8位bool类型
注意【尾标】前必须是小写字母
可用于启动控制面板命令,
hwnd可指定为0,hinst 可指定为 _HINSTANCE,
cmdLine 指定启动参数,cmdShow 指定为1即可,
也可以通过process.rundll 运行此函数,
或通过 process.control 直接执行控制面板命令
通知操作系统外壳刷新,例如刷新桌面图标等
参数依次为@eventId,@flags,@item1,@item2
参数@flags的值为5时函数名必须加上 W 尾标,即 ::Shell32.SHChangeNotifyW
执行 path 指定的程序,
第一个参数为数值格式的句柄,
最后一个参数为数值,指定为1即可,其他参数都是字符串,
详细用法请参考该 API 文档,
注意省略的参数也要指定 null 值,
非声明式调用 API 不能减少参数个数,
raw.execute 函数提供类似功能,但所有参数都可以省略。
process.execute 函数也提供类似功能
声明Kernel32 API函数
获取 %LocalAppData% 目录下的绝对路径。
可选使用指定需要存入的数据
将@path指定的相对路径转换为系统 %LocalAppData% 目录下的绝对路径,
可选使用 @data 指定需要存入的数据,
存入文件与目标文件长度不同或 PE 时间戳不同则允许替换旧文件,
指定 @data 参数后如果无法创建文件返回null,
最后返回转换所得的完整路径
获取或修改当前目录
无参数获取当前目录
将 @dir 参数指定的目录路径转换为完整路径并设为当前目录
成功返回 true
等价于 io.splitpath(path).dir 。
返回参数 @path 指定路径的目录部分路径。
也就是取最后一个斜杆或反斜杆之前的路径。
返回路径不会转换斜杆为反斜杆,也不会转为完整路径。
改用 fsys.getParentDir 函数取父目录。
改用 io.splitpath 可获取路径的文件名、后缀、分区号等。
获取参数 @1 指定路径的文件的字节长度。
成功返回数值,失败返回 null (例如文件不存在)
获取特殊文件夹,
参数@1使用 _CSIDL 开头的常量指定特殊文件夹的 CSIDL,
不指定参数@1则默认值为 _CSIDL_DESKTOP,
可选增加任意个拼接到目录后的子路径参数
这个函数与fsys.getSpecial函数用法接近,
但支持不定个数子路径参数, 不支持返回PIDL
fsys.knownFolder 可用于获取更多已知的特殊文件夹
将 @path 指定的相对路径转换为特殊文件夹下的绝对路径,
可选使用 @data 指定需要存入的数据,
存入文件与目标文件长度不同或 PE 时间戳不同则允许替换旧文件,
指定 @data 参数后如果无法创建文件返回null,
参数@csidl 使用 _CSIDL 开头的常量指定特殊文件夹的 CSIDL,
不指定@csidl 则默认值为 _CSIDL_DESKTOP,
最后返回转换所得的完整路径
生成系统临时文件目录下的临时文件路径。
此函数不会生成实际的文件,即使密集调用也不会生成相同的文件名。
生成临时文件路径,
可选用 @prefix 参数指定前缀名,
可选用 @ext 参数指定后缀名,后缀名应包含点
更新指定文件的数据
更新指定 @path 指定路径的文件为 @data 指定的数据。
如果添加更多参数,则首先调用 io.joinpath 拼接到 @path 后面。
存入文件与目标文件长度不同或 PE 时间戳不同则允许替换旧文件。
替换失败返回 null,否则返回文件路径
string.load 函数的别名。
以二进制模式读取文件或内嵌资源文件,返回普通字符串。
路径开始可用单斜杠(或单反斜杠)表示应用程序根目录,前面再加~表示 EXE 根目录。
如果~\或~/开头的EXE根目录路径不存在,自动转换为应用程序根目录下的路径重试。
以二进制模式创建或打开文件并写入数据(清空原数据)。
参数 @1 指定要写入的文件路径。
其他一个或多个参数指定要写入的数据(可指定字符串,数值,buffer,或结构体)。
成功返回 true,失败返回 null,错误信息,错误代码。
string.save 函数作用类似但仅支持单个参数(只能是字符串或 buffer 类型)。
另外,string.save 将参数 @2 设为 true 可以追加而不清空数据。
默认已加载的Shell32.dll模块对象(参考标准库:peload.io),
提供Windows系统外壳 API