下面的代码演示应用程序在 main.aau 中调用 process.main 创建新进程,
并方便的传输命令行参数( 支持在参数中直接传递 table 对象 )
进程间窗口可以使用 win.sendCopyData() 发送数据(支持字符串或table对象)
可以在窗口中使用 winform.onCopyData 函数方便的接收数据. 轻松实现进程间通信.
创建一个工程,在main.aau中输入下面的代码:
如果使用web窗体打开网页,使用下面的方法可以使用进程来代替线程, 进程关闭可以彻底释放网页所占用的内存( 现在新的浏览器基本都是一个网页一个进程,原理类似 )
-
import win.ui;
-
/*DSG{{*/
-
mainForm = ..win.form( top=-2;bottom=400;parent=...;right=600;left=-2;text="AAuto Form" )
-
mainForm.add(
-
button={ bottom=69;right=240;left=31;top=20;z=1;text="创建新进程";cls="button" };
-
edit={ bottom=372;text="edit";left=30;multiline=1;top=79;z=2;right=544;edge=1;cls="edit" }
-
)
-
/*}}*/
-
-
import process.main;
-
mainForm.button.oncommand = function(id,event){
-
//为当前应用程序创建新进程(开发环境中使用线程模拟)
-
process.main.start (
-
name = "一鹤";
-
run = "/什么什么";
-
title = "自定义标题" + tostring( time() );
-
fromHwnd = mainForm.hwnd
-
)
-
}
-
-
var args = process.main.parseCommandLine( ... );
-
if(args){
-
mainForm.text = args.title;
-
-
win.sendCopyData( args.fromHwnd,{ text = "你好,我是新进程";fromHwnd = mainForm.hwnd } )
-
}
-
-
mainForm.onCopyData = function(data){
-
mainForm.edit.appendText( data.text );
-
win.setPos( data.fromHwnd,1,1)
-
}
-
-
mainForm.show()
-
win.loopMessage();
阅读(2494) | 评论(0) | 转发(0) |