Jacob调用alasunsmscon.ocx控件的问题

phonsony 2009-06-21 12:56:00
最近在用Java写一个发短信的程序,是用jacob调用alasunsmscon.ocx控件连接短信猫设备,发送短信。

现在能够实现发短信的功能,也能提示收到短信,但是无法读取短信内容。
alasunsmscon.ocx里面有一ReadMsg方法,控件使用手册中描述如下:

读取设备新收到的短消息 (ReadMsg)
功能描述:读取设备新收到的短消息
参数: sNo string 收到短信的来源号码
sCon string 收到短信的内容
sMsgCenterNo string 短信中心号码
dSendTime date 发送短信的时间
iSendTimeZone Integer 发送短信的时区
返回: Long 0 读取成功, 其他 读取失败

当设备收到短信时,会自动触发 OnReceive这个事件,请在此事件中调用ReadMsg方法
-----------------------------------------------------------------
上面这段是控件使用手册中的说明
我感觉按上面的意思是,把sNo,sCon,sMsgCenterNo,dSendTime,iSendTimeZone这几个参数传给ReadMsg,
调用ReadMsg之后,它会把收到的短信的所有信息返回给sNo,sCon,sMsgCenterNo,dSendTime,iSendTimeZone这几个参数。我写的OnReceive响应函数如下,
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
......
private final ActiveXComponent comx=new ActiveXComponent("alasun.alasunsms");
private final Dispatch ob = comx.getObject();
......
public void OnReceive(Variant args[]){
System.out.println("收到短信!");
String sNo=null, sCon=null, sMsgCenterNo=null;//收到短信的来源号码//收到短信的内容//短信中心号码
Date dSendTime=null;//发送短信的时间
int iSendTimeZone;//时区

Variant ReadMsg = Dispatch.call(ob,"ReadMsg",sNo,sCon,sMsgCenterNo,dSendTime,iSendTimeZone);

if(0 == ReadMsg.getInt())
{
System.out.println(dSendTime + "收到来自" + sNo + "的短信,短信中心号:"+sMsgCenterNo + "短信内容:" + sCon);
}
}

运行以后,会输出如下信息:
收到短信!
null收到来自null的短信,短信中心号:null短信内容;null

也就是说能够响应设备产生的OnReceive事件,同时ReadMsg方法也调用成功,但是传进去参数的值并没有被改变,返回的信息全都是空。我调用其它只有函数本身返回值的函数时,使用Dispatch.call()是可以成功调用的。
我的问题就是在用jacob调用控件里像ReadMsg()这样能够通过传进的参数返回很多信息的函数时,应该如何写?
或者是不用Dispatch.call(),而用其它的方法才能实现?
...全文
357 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuhuqiu6 2012-10-29
  • 打赏
  • 举报
回复
用Java写一个发短信的程序,是用jacob调用alasunsmscon.ocx控件连接短信猫设备,发送短信。
1、现在实现发短信的功能,2、提示收到短信,3、读取短信内容。
楼主能帮个忙吗?把代码都贴出来。或者发到我的邮箱153521489@qq.com
谢谢啊!急啊!
Leson_Yin 2010-04-22
  • 打赏
  • 举报
回复
我也再想。。。等我弄出来,告诉你。
phonsony 2009-06-24
  • 打赏
  • 举报
回复
怎么没人回答

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧