java通过jacob调用ocx 方法可以使用 事件响应不了

baidu_34831792 2016-05-03 05:21:04
public static void main(String args[]){

try {
ComThread.InitMTA();//ComThread.InitMTA();
String progId = "SV3880-SDK";
Dispatch zkem = new ActiveXComponent(progId);
int d=Dispatch.call(zkem,"C_ServerInit",new Variant(8420),new Variant(0)).getInt();
System.out.println(d);

Thread.sleep(15000);


boolean b = Dispatch.call(zkem, "C_IsDeviceConnected",new Variant(2016042501)).getBoolean();
System.out.println("连接:"+b);
String str=Dispatch.call(zkem, "C_GetDevicesList").getString();
System.out.println("连接设备"+str);

SensorEvents events = new SensorEvents();
new DispatchEvents(zkem, events,progId);
Variant st=Dispatch.call(zkem, "C_GetDeviceTime",new Variant(2016042501));
System.out.println("设备时间"+st);

//Dispatch.call(zkem,"RegEvent",new Variant(1l),new Variant(65535l));

STA sta = new STA();
sta.doMessagePump();
System.in.read();
}catch(Exception e){
e.printStackTrace();
}
}
public class SensorEvents {
public void OnEventCConnect(Variant[] args) {
System.out.println(args[0].getString());
System.out.println(args[1].getLong());
System.out.println(args[2].getLong());
System.out.println(args[3].getLong());
System.out.println(args[4].getString());
System.out.println(args[5].getLong());
}

...全文
1350 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Qiuchh 2018-05-15
  • 打赏
  • 举报
回复
楼主解决问题了吗?我也碰到了一样的问题,java通过jacob调用ocx 方法可以使用 事件响应不了。我的QQ982278442
java597302241 2018-01-23
  • 打赏
  • 举报
回复
连接设备后,进行监听事件注册:Variant v0 = new Variant(2); Variant eventMask = new Variant(65535); boolean result2 = zkem.invoke("RegEvent",v0,eventMask).getBoolean(); System.out.println("regEvent()===="+result2); com.wemarklinks.pojo.ZkemEvent zkemEvent=new com.wemarklinks.pojo.ZkemEvent(); Dispatch ob =zkem.getObject(); DispatchEvents dispatchEvents=new DispatchEvents((Dispatch) ob,zkemEvent,componetName); 然后,进行监听: DispatchEvents de = new DispatchEvents(ob,zkemEvent); STA sta = new STA(); sta.doMessagePump(); 上面的代码,会自动让程序挂起,接受设备响应的数据。
qq1761790628 2017-03-24
  • 打赏
  • 举报
回复
你好请问下,我启动一个了一个线程,该线程里面已经连接了指纹机,一切正常;我每30分钟再启动线程去检测之前的连接是否正常(这个好像没法检测到,接口里面好像只能检测本次线程的内容),然后我就单独启动线程去连接,但是每次连接的时候 之前的连接线程都还存在 所以我想重新连接的时候就把之前的给断开 但是每次重新连接的时候 就是一个新的线程,而关不了之前的线程里面的指纹机。
neyo123456 2016-12-01
  • 打赏
  • 举报
回复
楼主这个问题解决了没,我也遇到这样的问题,无法获取响应事件。方法可以正常调用
awusoft 2016-05-05
  • 打赏
  • 举报
回复
先设置事件,然后再call试一下
attilax 2016-05-04
  • 打赏
  • 举报
回复
多看看文档吧,要不就是这个类库的限制。。你可以使用.net访问com,然后做个cli接口,java调用。可以使用转接口技术

62,614

社区成员

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

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