//回显 / 异步回显
import win.ui;
/*DSG{{*/
var winform = win.form(text="进程管道读写 - 异步回显";right=759;bottom=469)
winform.add(
edit={cls="edit";left=15;top=11;right=743;bottom=446;edge=1;hscroll=1;multiline=1;vscroll=1;z=1}
)
/*}}*/
winform.show();
import process.popen
//参数@1 可以直接输入包含参数的命令
//var prcs = process.popen("ping 127.0.0.1 -n 10 ")
//参数@1 指定执行文件路径或命令,参数@2 指定启动参数,用空格分开多个参数
//var prcs = process.popen("ping","127.0.0.1 -n 10 ")
/*
参数@1 指定执行文件路径或命令,
指定多个启动参数,用 process.joinArguments 合并所有启动参数( 参数间用空格分开 )。
*/
var prcs = process.popen("ping","127.0.0.1","-n", "10")
//输出所有结果直到目标进程结束,不阻塞界面消息
/*
for( all,out,err in prcs.each() ){
winform.edit.print( out,err );
}
*/
/*
也可以用 prcs.logResponse 指定回显函数,或者回显控件。
如果指定回显函数,则等待进程结束。如果指定回显控件,则函数立即返回,
并创建定时器异步回显进程输出
*/
prcs.logResponse(winform.edit);
/*
如果在控制台调用 prcs.logResponse() 且未指定参数,
则默认会使用 prcs.logger 属性指定的回显函数或回显控件作为参数。
如果未指定 prcs.logger,且事先引入了 console 库,
则默认会使用 console.log 作为回显函数(如果)。
*/
win.loopMessage();