2022.01.20 | 访客 | 27318次围观
中控脱机通讯开发包-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发表,未经许可,不得转载。
发表评论