欢迎来到本站
0

zkteco iface702 (也可能叫IF702+ic) 中控考勤机java开发步骤一---连接考勤机 ,开门

2022.01.20 | 访客 | 26832次围观

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

发表评论