下面的代码演示应用程序在 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();