用ScriptControl实现VBScript和DELPHI的结合,DELPHI实现了一个COM接口在脚本中可以调用了,接口中有一个 procedure CallUser(AUserName:String),即呼叫一个用户,这个用户是另一台计算机,内部用SOCKET来完成这个呼叫,这个方法是异步的,可能要经过一分钟才能返回呼叫结果,返回后系统将收到
WM_CALLUSER_MSG这个自己定义的消息,消息参数中标明了呼叫的结果.VBScript脚本不知如何写才能调用.不能将CallUser做成同步的,因为同时会有很多个用户来调用.实现的接口实例名称为:UserManage(用户管理)
.....
MsgBox "开始一个呼叫"
Dim CallRes
CallRes=UserManage.CallUser("2006100")//这是理想的写法,CallUser是异步方法,所以不能这样写
Select Case CallRes
Case 0 MsgBox "呼叫超时"
Case 1 MsgBox "呼叫成功"
Case -1 MsgBox "呼叫失败"
Case Else MsgBox "系统错误,返回未知消息"
End Select
......
当然每一次呼叫就创建一个线程,在线程中用一个事件内核对象来进行等待是可以的,但是因为会有很多个用户来调用这个方法,而且还有其它类似的这种异步过程调用,所以不想这样实现.请问有没有别的办法??在VBScript中是否可以通过创建一个不可见的窗体来处理消息???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货