SharedObject系列函数和共享对象有关的函数包括
SharedObjectRegister
SharedObjectGet
SharedObjectUnregister和SharedObjectDirectory函数
首先用SharedObjectRegister函数初始化共享对象并建立一个单独的线程如
SharedObjectRegister (ccuo_thread thread ) 其中ccuo_thread是一个共享的自定义类用户对象的类名thread是共享对象实例的共享名如果SharedObjectRegister函数返回Success则新线程创建成功
然后执行指定代码有两种方法让新线程执行指定的代码一种是在自定义类用户对象的constructor事件中编写脚本新线程创建后就会自动执行该事件脚本另一种方法是使用SharedObjectGet函数该函数实现共享对象实例的引用如
SharedObjectGet ( thread inv_thread ) 其中inv_thread是用来存储共享对象实例的一个对象变量要求与ccuo_thread具有同一个类名
最后通过使用Post语句即以inv_threadPost of_function(agrs)的形式异步调用共享对象的函数of_function
在完成任务后可以用SharedObjectUnregister函数中止线程也可用SharedObjectDirectory函数列出所有有效的共享对象
一函数调用部分
本文所用Win API函数原型为
Function Ulong FindWindowA ( String lpClassName String lpWindowName ) Library userdll
Function Ulong GetTickCount ( ) Library kerneldll
Function Ulong GetDesktopWindow ( ) Library userdll
Function Boolean GetWindowRect ( Ulong hWnd ref stc_rect lpRect ) Library userdll
Function Boolean MoveWindow ( Ulong hWnd int X int Y int nWidth int nHeight Boolean bRepaint ) Library userdll
下面具体讨论如何实现消息对话框的居中显示
//声明对象变量
ccuo_thread lccuo_thread
//创建新线程
SharedObjectRegister (ccuo_thread thread_center )
//引用实例
SharedObjectGet (thread_center lccuo_thread )
//调用窗口居中函数
lccuo_threadPost of_center (# Demostration )
//创建消息对话框
MessageBox ( Demostration Copyright(c) by YLSun )
//中止线程
SharedObjectunRegister ( thread_center )
[] [] []