aardio 文档

console 库模块帮助文档

console 成员列表

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

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

等待用户按Y或N键

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

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

console.clearInputBuffer()

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

console.clearScreen()

清屏

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.eraseLine()

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

console.eraseToEndOfLine()

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

console.error("字符串参数")

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

在开发环境中会自动打开控制台以红色字体输出参数,并输出当前调用栈信息。
发布后的程序不会自动打开控制台,不会输出调用栈信息。

console.fullscreen()

控制台窗口全屏切换

console.getCodePage()

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

console.getCursorInfo()

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

console.getErrorHandle()

错误输出句柄

console.getInputHandle()

标准输入句柄

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

读取用户输入的数值,
如果用户输入错误的数值则显示错误提示并重新读取输入直到成功,
可选在参数@2中指定缓冲区大小

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.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.setTitle("字符串参数")

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

console.showLoading

显示进度动画

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

n所有参数都可以省略,状态文本为false关闭动画,
调用console.open,console.log等函数都能自动关闭动画
参数@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(文本,前景色,背景色)

参数@2、参数@3只能使用 console.color 的成员值
背景色可以省略

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 格式