Module Lua-Engine
Lua 解释程序(Lua Engine)
用于 WinXShell.lua, -code, -script 选项时使用的代码,函数。
Lua 与 Lua 库
| Overview | 概览 |
扩展 os 库
| os.putenv (var, value) | 设置 环境变量 |
| os.info (key) | 获取 系统信息 |
| os.exec ([opt], cmd) | 执行外部命令 |
| os.link (lnk, target[, param[, icon[, index[, showcmd]]]]) | 创建 快捷方式 |
| os.rundll (dllfile, funcname[, param1[, param2[, ...]]]) | 调用 dll 中的公开函数 |
扩展 string 库
| string.envstr (str) | 展开 环境变量 |
| string.resstr (str) | 展开 字符串资源 |
扩展 math 库
| math.band (a, b) | 进行 位与运算 |
扩展 lua 函数
| exec () | 执行外部命令 |
| link () | 创建 快捷方式 |
| wxsUI (ui[, jcfg[, param]]) | 打开 指定的UI组件 |
| Alert (data1[, data2[, ...]]) | 使用对话框显示数据内容(调试时使用) App:Alert 的别名 |
| MsgBox (caption, msg[, btns[, icon]]) | 弹出提示 对话框 Dialog:Show 的别名 |
| Sleep (ms) | 暂停 当前进程(线程)执行, 用于等待或者延时处理 App:Sleep 的别名 |
扩展 lua 对象
| App | Class_App |
| Shell | Class_Shell |
| System | Class_System |
Deprecated 已弃用
| win_copyright () | 已弃用。获取 Windows 许可证说明 |
| cpu_info () | 已弃用。获取 CPU 信息(注册表) |
| mem_info () | 已弃用。获取 内存信息 |
| res_str (file, id) | 已弃用。获取 资源文件中的字符串信息 |
| call_dll () | 已弃用。调用 dll 中的公开函数 |
| CloseShellWindow () | 已弃用。关闭 外壳窗口 |
| MinimizeWindow (class, title) | 已弃用。最小化 指定窗口 |
| HideWindow (class, title) | 已弃用。隐藏 指定窗口 |
| CloseWindow (class, title) | 已弃用。关闭 指定窗口 |
Lua 与 Lua 库
- Overview
-
概览
WinXShell 将Lua解释器嵌入程序中,支持调用Lua代码,还提供了实用的扩展Lua对象,功能函数。Lua语言自带的功能,模块可直接使用, 比如字符串操作,数学函数,系统功能函数等。Lua标准库
详细信息请访问 Lua官方网站 https://www.lua.org/ 查看。
另外还引入了 winapi 库,可以使用很多实用的面向Windows系统的功能。
简单使用Lua指令时,请了解以下Lua基本语法:- 函数说明中的类型主要有
int整数类型,bool布尔型(true - 真, false - 假), string 字符串类型。 - 字符串使用一对单引号(
')或者双引号(")包起来。特殊的字符需要使用转义字符代替。比如:\t=> 制表符,\\=>\,\n=> 换行符
- 注册表或者文件路径存在很多反斜杠(
\), 使用双中括号抱起来,可直接使用[[path\to\file]]。 - 使用双点符号(
..)可以将字符串进行拼接(也可以使用string.format函数)。
还可通过编辑WinXShell.lua加载自定义扩展模块,功能函数。 - 函数说明中的类型主要有
扩展 os 库
- os.putenv (var, value)
-
设置 环境变量
Parameters:
- os.info (key)
-
获取 系统信息
Parameters:
- key
string
信息名
Version- 获取 系统版本信息- 从注册表获取 ProductName, CSDVersion 信息
WinVer- 获取 系统版本信息- 返回 包含多个系统版本数组
['ver']- 包含4级别的完整版本信息[1]- 1级版本号 (整数)[2]- 2级版本号 (整数)[3]- 3级版本号 (整数)[4]- 4级版本号 (整数)['1.2']- 主次版本号 (字符串)
CPU- 处理器信息- 返回 包含多个处理器信息的数组
['name']- 名称['~MHz']- 速度 (整数, 单位 MHz)
Mem- 内存信息- 返回 包含多个内存信息的数组
- 系统可用内存(硬件以外); 总内存大小; 当前可用内存
['total']- 总内存大小 (整数, 单位 字节)['used']- 当前已使用内存 (整数, 单位 字节)['avail']- 当前可用内存 (整数, 单位 字节)['total_gb']- 总内存大小 (整数, 单位 GB)['used_gb']- 当前已使用内存 (浮点数, 单位 GB)['avail_gb']- 当前可用内存 (浮点数, 单位 GB)['used%']- 当前已使用内存 (浮点数, 百分比)
Copyright- 版权信息LangId- 系统语言识别号LocaleName- 系统语言名TickCount- 系统启动后经历的时间 (毫秒)FirmwareType- 启动模式IsUEFIMode- 是否是 UEFI 启动模式IsWinPE- 是否是在 Windows PE 环境
Usage:
-- WinXShell.exe -script info.lua -- info.lua local v = os.info('WinVer') v.ver ---> '10.0.19044.1586' v['ver'] ---> '10.0.19044.1586' v[1] ---> 10 v[2] ---> 0 v[3] ---> 19044 v[4] ---> 1586 v["1.2"] ---> '10.0' local cpu_info = os.info('CPU') cpu_info['name'] ---> 'Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz' cpu_info['~MHz'] ---> 3504 local mem = os.info('Mem') print(mem['total'], mem['used'], mem['avail'], mem['used%']) ---> 17129684992 3752480768 13377204224 22.0 print(string.format("Total: %d GB, Used: %.2f GB, Avail: %.2f GB, Used: %.1f %%", mem['total_gb'], mem['used_gb'], mem['avail_gb'], mem['used%'])) ---> Total: 16 GB, Used: 3.49 GB, Avail: 12.46 GB, Used: 22.0 % os.info('Copyright') ---> (c) Microsoft Corporation。保留所有权利。 os.info('LangId') ---> '2052' os.info('Locale') ---> 'zh-CN' os.info('FirmwareType') ---> 'UEFI' os.info('IsUEFIMode') ---> 1 os.info('IsWinPE') ---> 0
- key
string
- os.exec ([opt], cmd)
-
执行外部命令
Parameters:
- opt
string
启动选项 可以是以下启动选项中的一个或多个的组合:
/hide隐藏窗口启动/wait等待程序执行结束/min最小化窗口启动/max最大化窗口启动/admin要求管理员权限启动
- cmd string 命令行(含参数)
Usage:
exec('cmd.exe /k echo hello') exec('/hide /wait', 'PETools.cmd PETools.7z')
- opt
string
- os.link (lnk, target[, param[, icon[, index[, showcmd]]]])
-
创建 快捷方式
Parameters:
- lnk string 指定要创建的快捷方式的路径
- target string 快捷方式的目标路径
- param string 程序执行参数 (optional)
- icon string 指定任务栏图标(ico文件,或者包含图标的资源文件) (optional)
- index integer 图标索引号 (optional)
- showcmd string 启动参数 (optional)
Usage:
os.link([[D:\Tools\Everything.lnk]], [[%ProgramFile%\Everything\Everything.exe]]) os.link(([[D:\Tools\Hello.lnk]], 'cmd.exe', '/k echo hello', 'shell32.dll', 27)
- os.rundll (dllfile, funcname[, param1[, param2[, ...]]])
-
调用 dll 中的公开函数
Parameters:
- dllfile string dll文件路径
- funcname string 函数名
- param1 函数参数 (optional)
- param2 函数参数 (optional)
- ... 函数参数 (optional)
Usage:
-- SHEmptyRecycleBinA - 清空指定驱动器上的回收站。 -- SHEmptyRecycleBinA(HWND hwnd, LPCSTR pszRootPath, DWORD dwFlags); -- 参数 -- DWORD dwFlags SHERB_NOCONFIRMATION = 1 -- 不会显示任何确认删除对象的对话框。 SHERB_NOPROGRESSUI = 2 -- 不显示指示进度的对话框。 SHERB_NOSOUND = 4 -- 操作完成后不会播放任何声音。 -- https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shemptyrecyclebina -- 清空所有驱动器上的所有回收站,第三个参数 dwFlags 为 0, 不进行特别设置, -- 将弹出是否清空回收站提示,清空时显示进度对话框,且清空时有清空操作音效。 os.rundll('shell32.dll','SHEmptyRecycleBinA',0,0,0)
扩展 string 库
- string.envstr (str)
-
展开 环境变量
Parameters:
- str string 包含环境变量引用的字符串
Usage:
string.envstr('%ProgramFiles%\WinXShell\WinXShell.exe') ---> X:\Program Files\WinXShell\WinXShell.exe local str1 = [[%SystemRoot%\System32\regedit.exe]] str1:envstr() ---> C:\Windows\System32\regedit.exe
- string.resstr (str)
-
展开 字符串资源
Parameters:
- str string 包含字符串资源引用的字符串
Usage:
string.resstr('#{@shell32.dll,9315}') ---> 本地磁盘 local str2 = '#{@shell32.dll,9316}' str2:resstr() ---> DVD 驱动器
扩展 math 库
扩展 lua 函数
- exec ()
-
执行外部命令
See also:
- link ()
-
创建 快捷方式
See also:
- wxsUI (ui[, jcfg[, param]])
-
打开 指定的UI组件
Parameters:
- Alert (data1[, data2[, ...]])
-
使用对话框显示数据内容(调试时使用)
App:Alert 的别名Parameters:
- data1 数据1
- data2 数据2 (optional)
- ... (optional)
Usage:
Alert(App.Path) Alert('abc', 123)
- MsgBox (caption, msg[, btns[, icon]])
-
弹出提示 对话框
Dialog:Show 的别名Parameters:
Returns:
ok,yes,no,cancel,try,abort或者retry
返回按下的按钮名称:
See also:
Usage:
local run_test = MsgBox("Test", "Do you want to continue the test?", "yes-no") if run_test ~= "yes" then App:Exit(88) end
- Sleep (ms)
-
暂停 当前进程(线程)执行, 用于等待或者延时处理
App:Sleep 的别名Parameters:
- ms integer 暂停时间 (毫秒)
扩展 lua 对象
- App
- Class_App
- Shell
- Class_Shell
- System
- Class_System
Deprecated 已弃用
- win_copyright ()
-
已弃用。获取 Windows 许可证说明
See also:
- cpu_info ()
-
已弃用。获取 CPU 信息(注册表)
See also:
- mem_info ()
-
已弃用。获取 内存信息
See also:
- res_str (file, id)
-
已弃用。获取 资源文件中的字符串信息
Parameters:
- file string 资源文件
- id integer 资源号
See also:
- call_dll ()
-
已弃用。调用 dll 中的公开函数
See also:
- CloseShellWindow ()
-
已弃用。关闭 外壳窗口
外壳窗口不存在时,将等待外壳窗口出现后再关闭
See also:
- MinimizeWindow (class, title)
-
已弃用。最小化 指定窗口
Parameters:
- class
- title
See also:
- HideWindow (class, title)
-
已弃用。隐藏 指定窗口
Parameters:
- class
- title
See also:
- CloseWindow (class, title)
-
已弃用。关闭 指定窗口
Parameters:
- class
- title
See also: