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


 
		
发表评论