2022.01.20 | 访客 | 28787次围观
中控脱机通讯开发包-6.3.1.38 里面有zkemkeeper.dll
链接:https://pan.baidu.com/s/1kC5chunZmquh1ucKY7jNIw
提取码:1234
java使用jacob调用中控考勤机sdk方法
1、jacob-1.19版本
2、jdk1.8 64位(经过测试jacob.1.19支持64为jdk);
3、将jacob.jar 放入项目 WEB-INFO/lib下导入:
4、将jacob-1.19-x64.dll 放入64位 jre/bin目录下,我的是:D:\java\jdk1.8.0_101\jre\bin;
5、将中控考勤机sdk 的dll文件全部放入 c:\windows\system32 目录下
6、运行cmd 注册zkemkeeper.dll --->regsvr32 c:\windows\system32\zkemkeeper.dll (也可以使用 自动注册.bat)
7、成功后如下提示:会有弹框
8、已经配置完毕,进行代码测试:
//zkemkeeper.ZKEM.1 为zkemkeeper.dll 注册成功后 在注册表可以查看:HKEY_CLASSES_ROOT最下面
package utils;
import com.jacob.activeX.ActiveXComponent;
/**
* @ClassName:${type_name}
* @Description:${todo}(考勤机连接测试)
* @author: ZHOUPAN
* @date ${date} ${time}
* @Copyright: 2018 www.zsplat.com Inc. All rights reserved.
* ${tags}
*/
public class ZkemSDK {
private static ActiveXComponent zkem = new ActiveXComponent("zkemkeeper.ZKEM.1");
/**
* 链接考勤机
*
* @param address 考勤机地址
* @param port 端口号
* @return
*/
public boolean connect(String address, int port) {
boolean result = zkem.invoke("Connect_NET", address, port).getBoolean();
return result;
}
/**
* 断开考勤机链接
*/
public void disConnect() {
zkem.invoke("Disconnect");
}
public static void main(String[] args) {
ZkemSDK sdk = new ZkemSDK();
boolean connFlag = sdk.connect("192.168.1.201", 4370);
System.out.println("conn:"+connFlag);
}
}package utils;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
import net.sf.json.JSONObject;
import java.util.*;
/**
* @ClassName:${type_name}
* @Description:${todo}(连接、获取考勤机数据)
* @author: ZHOUPAN
* @date ${date} ${time}
* @Copyright: 2018 www.zsplat.com Inc. All rights reserved.
* ${tags}
*/
public class ZkemSDKUtils {
//zkemkeeper.ZKEM.1 为zkemkeeper.dll 注册成功后 在注册表可以查看:HKEY_CLASSES_ROOT最下面
private static ActiveXComponent zkem = new ActiveXComponent("zkemkeeper.ZKEM.1");
/**
* 连接考勤机
*
* @param address 考勤机地址
* @param port 端口号
* @return
*/
public static boolean connect(String address, int port) {
boolean result = zkem.invoke("Connect_NET", address, port).getBoolean();
return result;
}
/**
* 开门
* @param dwMachineNumber 机器号
* @param delay 开门延迟时间 秒
* @return
*/
public static boolean acUnlock(String dwMachineNumber , int delay) {
boolean result = zkem.invoke("ACUnlock", dwMachineNumber, delay).getBoolean();
return result;
}
public static void main(String[] args) {
ZkemSDKUtils sdk = new ZkemSDKUtils();
Map<String, Object> map = new HashMap<String, Object>();
boolean connFlag = sdk.connect("192.168.1.201", 4370);
if (connFlag) {
boolean flag = sdk.acUnlock("001",5);//001机器号随便写的,请自行查找
System.out.println("flag" + flag);
System.out.println(JSONObject.fromObject(map).toString());
}
}
}参考
https://www.cnblogs.com/zhou-pan/p/9365256.html
版权声明
本文仅代表作者观点,不代表xx立场。
本文系作者授权xxx发表,未经许可,不得转载。


发表评论