//aardio 调用进程管道 - 回显 / 异步回显 //字符化目录树结构(tree): file://~/example/Process/Pipe/tree.aardio 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") //如果调用 UTF8 编码的程序,请添加下面的编码声明,否则会显示乱码。 //prcs.codepage = 65001 //输出所有结果直到目标进程结束,不阻塞界面消息 /* for( all,out,err in prcs.each() ){ winform.edit.print( out,err ); } */ /* 也可以用 prcs.logResponse 指定回显函数,或者回显控件。 如果指定回显函数,则等待子进程结束。 如果指定回显控件,则函数立即返回,并创建定时器异步回显进程输出。 */ prcs.logResponse(winform.edit); /* 如果在控制台调用 prcs.logResponse() 且未指定参数, 则默认会使用 prcs.logger 属性指定的回显函数或回显控件作为参数。 即使 logger 属性指定控件,prcs.logResponse() 仍然会等待子进程结束。 如果未指定 prcs.logger,且事先引入了 console 库, 则默认会使用 console.log 作为回显函数。 */ win.loopMessage();