aardio 文档

console 库模块帮助文档

console 成员列表 #

控制台扩展函数库
Win10 以上系统控制台支持以下快捷键:
Alt + Enter 切换全屏
Ctrl + Shift + 加号/减号 调整透明度

console.askYesNo("按 Y 键继续,按 N 键取消") #

等待用户按 Y 或 N 键

console.box(列,行,终止列,终止行,背景色,边框标题) #

在控制台画一个色块,边框标题可省略,
参数@1,@2省略则自动居中
返回列,行,终止列,终止行

console.choice2(items,color) #

显示菜单。
参数 @1 必须指定非空数组。
参数 @2 可选用 console.color 名字空间的颜色值指定选中项颜色。
按方向键选择项目,回车键确认选项,ESC 键取消。

console.choice2(items,title) #

显示菜单。。
参数 @1 必须指定非空数组。
参数 @2 可选用一个字符串自定义输入提示。

console.clearInputBuffer() #

刷新控制台输入缓冲区
丢弃缓冲区的所有输入

console.clearScreen #

清屏

console.clearScreen(列号,行号) #

可选指定清屏的开始位置。
开始位置之前的输出保持不变,
仅清除指定位置以后的输出。
不指定参数则清除所有输入。

使用 console.getPos 函数可以获取当前位置(行号,列号)。

console.close() #

关闭控制台

console.dump #

显示变量的值,支持多参数

console.dump(comObj) #

参数 @1 指定 COM 对象,且无其他参数,
则在控制台输出调用 com.DumpTypeInfo 函数返回的类型信息。
调用 com.tlbDoc.dump 函数可打印 COM 对象更详细的类型库信息

console.dump(comObj,enumType) #

参数 @1 指定 COM 对象,参数 @2 指定枚举类型名,
在控制台输出该枚举类型的所有名值对。

通常枚举名值对也是 COM 常量名值对,
可以使用列举的枚举名字(不用指定枚举类型名)
作为 COM 对象的成员名获取枚举值

console.dump(value,...) #

在控制台显示普通 table,string,number 等类型的值,不显示函数等,
table 对象仅显示键名为字符串的值,以及数值索引自 1 开始的顺序数组

console.dumpFile(文件路径) #

输出参数 @1 指定文件路径的文件内容

console.dumpJson(变量) #

将对像转换为格式化的 JSON 文本并输出到控制台
对象如果包含数值索引自1开始的顺序数组成员则转换为 JSON 数组
JSON 数组会忽略其他索引不在数组范围内的成员

console.dumpTable(表对象) #

如果参数 @1 传入字符串或 buffer,转换为字节码数组再输出。

如果参数 @1 传入表参数,
使用 ..util.table.stringify 函数格式化为文本然后输出到控制台。
仅转换表包含的文本、数值、布尔值、嵌套表对象,
小数精度最大为 6 位、并自动清除小数尾部多余的 0,
如果表定义了 tostring 元方法、则转换为字符串
忽略其他类型,忽略循环引用的表
如果输出表的数组成员,则忽略非数组成员。

console.dumpTable 输出时对表的信息进行了精简,没输出的数据不是丢了。
console.dump, console.varDump 输出的信息更全,但也不是所有对象都能打印出来

console.eraseLine() #

清除当前行
可选指定要在当前行输出的一个或多个参数

console.eraseToEndOfLine() #

清除当前输入光标到行尾的所有字符
注意用‘\r’虽然能回退光标到行首,但并不擦除已输出的字符

console.error(错误信息) #

使用标准错误输出流(io.stderr)输出,可以重定向,
可添加任意个参数,其他参数也转换为字符串以后输出。

在开发环境中会自动打开控制台以红色字体输出参数,并输出当前调用栈信息。
发布后的程序不会自动打开控制台,不会输出调用栈信息。
如果不指定参数 @1 (null值),此函数不作任何操作。

console.fullscreen() #

控制台窗口全屏切换

console.getCodePage() #

获取输入代码页,输出代码页

console.getCursorInfo() #

返回光标信息,
用法请参考此函数源码

console.getErrorHandle() #

错误输出句柄

console.getInputHandle() #

标准输入句柄

console.getKey() #

等待并读取控制台按键,并返回虚拟键码。
程序退出或控制台关闭返回 null 。

console.getNumber( "请输入数值:" ) #

读取用户输入的数值,
如果用户输入错误的数值则显示错误提示并重新读取输入直到成功。
可选用参数@2限定最小有效数值。
可选用参数 @3 限定最大有效数值。

console.getOutputHandle() #

标准输出句柄

console.getPassword() #

读取密码
可选使用参数一指定控制台回显掩码,默认显示星号

console.getPos() #

返回光标坐标

console.getScreenBufferInfo() #

返回屏幕缓冲区信息

console.getSize() #

返回控制台屏幕缓冲区每行可输入的字符数,
以及可输入的字符行数

console.getText( "请输入文本:" ) #

此函数内部调用io.getText自控制台读取用户输入,
可选在参数@2中指定缓冲区大小
此函数不调用io.stdin.read等标准输入函数

console.getTextAttribute() #

获取控制台文本颜色,
返回颜色值为 背景色 * 0x10 + 文本颜色

console.getTitle() #

获取控制台标题

console.getWindow() #

返回控制台窗口句柄
使用此函数可判断当前是否已打开控制台窗口;

console.getch() #

读取输入字节码,中文字返回两个字节码
控制台不回显字符

console.getche() #

读取输入字符
控制台回显字符

console.hex() #

调用console.log以16进制输出字符串、或缓冲区的所有字节码,
也可以使用 console.dumpTable 函数将字符串或buffer转换为字节码数组输出

console.isCursorVisible() #

控制台当前是否显示光标

console.isOpened() #

是否已显示控制台窗口。

console.kbHit() #

检测键盘有没有输入

console.kbRead() #

读取用户按键返回keyEvent对象

返回对象:consoleKbeventObject

console.kbRead(true) #

等待用户按任意键并返回keyEvent对象(不包含释放按键事件)

console.log() #

调用 console.writeText 在控制台输出信息,支持多参数。
多个参数间输出时用制表符分隔,并且在最后输入一个换行。
此函数必须先导入 console 库才能使用。

参数支持 UTF8/UTF16/ANSI 字符串,
二进制或非 UTF8 或系统 ANSI 编码的字符串请改用 console.hex 函数。

该函数可自动打开控制台窗口,而无需事先调用 io.open 。
注意 console.log 与 console.print 指向同一函数。
如果是输出错误信息,请改用 console.error 函数。

console.logPause() #

调用 console.log 函数输入所有参数,
然后调用 console.pause 函数暂停

console.modifyMode(输入输出句柄,移除模式,添加模式) #

设置控制台的显示模式
参数用法参考 WINAPI SetConsoleMode
参数@1如果省略则默认为标准输出句柄
成功返回当前模式,失败返回null

console.more #

等待并在按任意键以后继续,用于在控制台分页输出时等待按键。

console.more(分页大小,是否清屏) #

略参数 @1 则参数默认为 1 。
如果参数 @2 为true,按任意键以后清除控制台已显示的内容。

console.open() #

打开控制台窗口,
如果控制台窗口已打开,该函数不进行任何操作,
如果参数为 true 则将 console.utf8 设为true,
请参考 console.utf8 的说明

此函数重定向 msvcrt.dll 定义的 stdin,stdout,stderr 到控制台

console.pause #

暂停,
按任意键继续

console.pause(按键后是否关闭控制台,提示) #

返回用户按键键码

console.peek() #

测试键盘有没有输入
有则读取并返回keyEvent对象,否则返回空

返回对象:consoleKbeventObject

console.print("字符串参数") #

调用console.writeText在控制台输出信息,支持多参数
多个参数间使用制表符分隔,并且在最后输入一个换行,
参数支持UTF8/UTF16/ANSI字符串,
该函数可自动打开控制台窗口,而无需事先调用io.open();
注意console.log与console.print指向同一函数
如果是输出调试信息,建议大家使用 console.error 函数

console.printf("%s", ) #

自动打开控制台
调用console.log函数输出格式化字符串,
格式化语法与string.format相同

console.readOutputCharacter() #

读取标准输出缓冲区文本。
可选用参数 @1 指定要读取的缓冲区大小,
如果不指定则自动获取缓冲区长度

console.setCodePage(输入代码页,输出代码页) #

设置代码页
应在打开控制台后使用该函数

console.setColor(文本颜色,背景色) #

设置控制台文本颜色与背景色。
颜色颜色参数可指定 console.color 名字空间的颜色数值或颜色名称(字符串值)。
示例:console.setColor("red","darkBlue")
无参数恢复默认颜色

console.setCtrlHandlerThread(hander,add,owner) #

console.setCtrlHandlerThread( function(ctrlType){  
    /*控制台程序退出前是否触发 @hander 参数指定的线程函数,  
@add 为 true 添加触发函数,为 false 移除,默认值为 true。  
可选用 @owner 指定线程函数的 owner 参数。  

使用前请先阅读多线程入门教程,了解线程函数基本规则。  

ctrlType 为 null 表示控制台正常关闭,不可取消。  
ctrlType 为 0 表示按下 Ctrl+ C。  
ctrlType 为 1 表示按下 Ctrl + Break。  
ctrlType 为 0 或 1 时返回 true 可阻止控制台退出  

在此函数内不应再使用任何控制台函数*/  
});

console.setCursorInfo(info) #

修改光标信息,
用法请参考此函数源码

console.setCursorVisible(visible) #

设置控制台是否显示光标

console.setLoadingDots(动画字符数组,是否显示在尾部,动画间隔毫秒数) #

指定showLoading函数使用的默认动画字符数组
除参数@1必须指定之外,其他参数可选

console.setPos(列,行) #

设置光标坐标

console.setTextAttribute #

设置文本颜色与背景色,
设置整个窗口的背景色请使用 console.setColor;

console.setTextAttribute(文本颜色,背景色) #

颜色参数可指定 console.color 名字空间的颜色数值或颜色名称(字符串值)。
无参数恢复默认颜色

console.setTextAttribute(颜色) #

颜色值可以设为 背景色 * 0x10 + 文本颜色,
也可直接使用 console.color 的成员值 (数值)或名称(字符串值)作为参数

console.setTextColor(文本颜色,背景色) #

设置文本颜色,此函数为 setTextAttribute 函数的别名。
颜色参数可指定 console.color 名字空间的颜色数值或颜色名称(字符串值)。
示例:console.setTextColor("red","darkBlue")
无参数恢复默认颜色

console.setTitle("字符串参数") #

设置控制台标题,
此函数会打开控制台窗口

console.showLoading #

显示进度动画

console.showLoading(状态提示文本,动画颜色) #

所有参数都可以省略,状态文本参数为 false 关闭动画,
调用 console 库的其他函数基本都会自动停止动画。
参数 @2 只能使用 console.color 的成员值。

console.stderr #

标准错误输出

返回对象:ioFileObject

console.stdin #

标准输入

返回对象:ioFileObject

console.stdout #

标准输出

返回对象:ioFileObject

console.utf8 #

控制台是否启用UTF-8编码,
所有线程设置必须相同,否则会导致重新打开控制台,
如果操作系统为英文环境,控制台启用 UTF-8 可正常显示中文,
此值为 null(默认值) 时由 aardio 自动选择编码(WIN10 以上系统默认开启 UTF-8),
启用这个选项在 WIN10 以下系统可能出现显示不正常的问题,
但有一些程序,例如 Electron 主进程输出默认需要打开此选项

console.varDump(变量) #

此函数显示一个或多个参数的类型与值

console.writeBack() #

控制台输出字符串并覆盖最后显示的等长字符
如果有多个参数则调用string.format格式化后输出

console.writeColorText #

调用 console.writeText 输出指定颜色文本,
此函数不会自动打开控制台窗口

console.writeColorText(文本,文本颜色,背景色) #

颜色颜色参数可指定 console.color 名字空间的颜色数值或颜色名称(字符串值)。
示例:console.writeColorText("文本","red","darkBlue")
背景色可以省略

console.writeText() #

直接写入控制台,
参数支持UTF8/UTF16/ANSI字符串,
支持1个或多个参数,但遇到null参数会停止输出后面的参数,
注意这个函数不会自动打开控制台,
此函数不调用io.stdout.write,io.print等标准输出函数
并且可以支持更多的Unicode字符

全局对象 成员列表 #

afterConsoleOpen #

 if(::Kernel32.GetConsoleWindow()){  

 }  
 ..subscribe("afterConsoleOpen",function(){  
    /*console 库打开控制台执行此回调*/  
} );

console.color 成员列表 #

console.color. black #

0; //黑色

console.color.blue #

9; //蓝色

console.color.cyan #

0xB; //青色

console.color.darkBlue #

1; //暗蓝色

console.color.darkCyan #

3; //暗青色

console.color.darkGray #

8; //深灰色

console.color.darkGreen #

2; //暗绿色

console.color.darkMagenta #

5; //暗紫色

console.color.darkRed #

4; //暗红色

console.color.darkYellow #

6; //暗黄色

console.color.gray #

7; //灰色

console.color.green #

0xA; //绿色

console.color.magenta #

0xD; //紫色

console.color.red #

0xC; //红色

console.color.white #

0xF //白色

console.color.yellow #

0xE; //黄色

consoleKbeventObject 成员列表 #

consoleKbeventObject.bKeyDown #

按键是否释放

consoleKbeventObject.isCapsLkOn #

是否打开大写

consoleKbeventObject.isEnhanced #

是否扩展键

consoleKbeventObject.isLeftAltPressed #

是否按下左ALT键

consoleKbeventObject.isLeftCtrlPressed #

是否按下左CTRL键

consoleKbeventObject.isNumLkOn #

是否打开NumLk键

consoleKbeventObject.isRightAltPressed #

是否按下右ALT键

consoleKbeventObject.isRightCtrlPressed #

是否按下右CTRL键

consoleKbeventObject.isScrLkOn #

是否打开ScrLk键

consoleKbeventObject.isShiftPressed #

是否按下SHIFT键

consoleKbeventObject.uChar.asciiChar #

ASCII字节码

consoleKbeventObject.uChar.dwControlKeyState #

控制键状态码

consoleKbeventObject.uChar.unicodeChar #

Unicode字节码

consoleKbeventObject.wRepeatCount #

重复次数

consoleKbeventObject.wVirtualKeyCode #

虚拟键码

consoleKbeventObject.wVirtualScanCode #

扫描码

Markdown 格式