aardio 文档
aardio 范例: 管道演示
//入门
//相关范例:调用其他语言 > 批处理与命令行
import win.ui;
/*DSG{{*/
var winform = win.form(text="管道演示";right=495;bottom=431;parent=...)
winform.add(
button={cls="button";text="findstr";left=26;top=169;right=134;bottom=202;dl=1;dt=1;z=1};
edit={cls="edit";text="bbs";left=224;top=172;right=480;bottom=204;dl=1;dr=1;dt=1;edge=1;z=6};
editInput={cls="edit";text='www.aardio.com\r\nwww.aardio.cn\r\nbbs.aardio.com';left=16;top=32;right=480;bottom=167;dl=1;dr=1;dt=1;edge=1;multiline=1;z=2};
editOutput={cls="richedit";left=16;top=212;right=480;bottom=416;db=1;dl=1;dr=1;dt=1;edge=1;hscroll=1;multiline=1;vscroll=1;z=3};
static={cls="static";text="输入字符串:";left=16;top=8;right=120;bottom=24;dl=1;dt=1;transparent=1;z=4};
static2={cls="static";text="启动参数:";left=136;top=177;right=208;bottom=193;align="right";dl=1;dt=1;transparent=1;z=5}
)
/*}}*/
//响应控钮点击
winform.button.oncommand = function(id,event){
winform.button.disabledText = {"✶";"✸";"✹";"✺";"✹";"✷"};
import process.popen;
/*
启动外部程序,隐藏黑窗口,并返回可读写的进程管道。
参数@2 可用字符串指定进程启动参数,多个参数用空格分格。
如果参数 @1 是表对象,或存在更多个非 null 参数,则合成所有参数为单个启动命令行参数。
*/
var prcs,err = process.popen("findstr",winform.edit.text);
//如果执行失败,则 返回值1 为null,返回值2 为错误信息,返回值3 为错误代码。
assert(prcs,err);
//如果调用 UTF8 编码的程序,请添加下面的编码声明
//prcs.codepage = 65001
//写数据到进程输入流,相当于 prcs.write(winform.editInput.text,'\n');
prcs.print(winform.editInput.text);
//关闭进程输入流
//prcs.writeClose();
/*
自进程获取输入数据,此函数会等待进程结束,但不会阻塞界面消息。
如果用参数@1指定模式串,则返回匹配后的文本。
*/
winform.editOutput.text = prcs.readAll();
//关闭进程管道,prcs.readAll() 默认会自动调用 prcs.close()
//prcs.close()
winform.button.disabledText = null;
}
winform.show()
win.loopMessage();
Markdown 格式