java二次开发考勤机_浩顺AC671指纹考勤机二次开发(demo)

news/2024/10/21 11:51:27/

关于考勤机

AC671,是新换的机器,以前的那部机器,通过网络死活连接不上,换了AC671网络连接是好用了.但是,我要吐槽

浩顺的考勤机应该是卖了很多了吧,可是自带的软件太不给力,最后分析出来的数据一大堆,并不好用.so,试试看二次开发

联系卖家要来了二次开发包,是一个EXE文件,安装,下一步直到完成.安装后的内容包含例程(VB程序,我没写错,是VB工程,不是VB.NET,为了看代码我又装了一个VB6.0),

DLL和OCX(功能基本一样,都是com组件),PDF(接口说明文档),可执行文件(测试用).

二次开发

看了两遍文档,基本上了解接口的使用,新建工程作下测试.工程就是普通的winform工程,工程建好后添加控件引用,

开始添加dll的引用,死活添加不了,转换成托管代码时也是报错,把能试的方法都用过了,dll的引用也没添加上.

dll的引用不行,还有一个OCX,添加对OCX的引用,具体方法是,在toolbox上添加自定义控件的方式来使用ocx控件

其中,FOWAttend.ocx是用来和考勤机通信的;FKRealSvr.ocx是用来建立考勤机实时监控的.两个OCX在安装后自动注册到系统中(我的是win7 32位中文)

下面两个控件使用后,得到的是你在登记指纹时的登记号,如我的是0000007,没有录名字,但是我们开发的软件不知道这个00000007是谁

所以还要用DB(文件)记录下登记号000007所对应的人的名字,以方便后续的分析

FOWAttend.ocx的使用

新建普通winform工程后,拖一个FOWAttend.ocx的控件到form1上,下面上代码

private void button1_Click(object sender, EventArgs e)

{

// 通过网络连接到考勤机

int machineNo = 1;

string IP = "192.168.1.240"; // 考勤机IP

int port = 5005;

int timeOut = 5000;

int protocolType = 0;

int netPassword = 0;

int license = 1261;

int ret = axFOWAttend1.ConnectNet(machineNo, IP, port, timeOut, protocolType, netPassword, license);

Debug.WriteLine("ret:" + ret); // 返回1,连接正常,其它有错误

}

private void button2_Click(object sender, EventArgs e)

{

// 断开连接

axFOWAttend1.DisConnect();

}

private void button3_Click(object sender, EventArgs e)

{

// 文档上有说明,要读取数据必须用两个方法,LoadGeneralLogData和GetGeneralLogData

int ret = axFOWAttend1.LoadGeneralLogData(0);

int ret2 = 0;

if (ret == 1)

{

int enrollNum = 7;

int verifyMode = 1;

int inOutMode = 1;

while (ret2 != -7) // -7是最后一条时的返回值

{

DateTime dt = DateTime.Now;

// GetGeneralLogData方法参数是ref的,是把考勤信息写到ref变量中,供后面使用,参数意义可参考文档.需要自己循环读取全部考勤记录

ret2 = axFOWAttend1.GetGeneralLogData(ref enrollNum, ref verifyMode, ref inOutMode, ref dt);

Debug.WriteLine(string.Format("ret:{0}, user:{1}, datetime:{2}", ret2, enrollNum, dt.ToString("yyyy-MM-dd HH:mm:ss")));

}

}

}

FKRealSvr.ocx的使用

新建普通winform工程,添加FKRealSvr.ocx到toobox上,并拖一个到form1上,接着上代码

public Form1()

{

InitializeComponent();

axFKRealSvr1.OnReceiveGLogData += new AxFKREALSVRLib._DFKRealSvrEvents_OnReceiveGLogDataEventHandler(axFKRealSvr1_OnReceiveGLogData);

}

private void button1_Click(object sender, EventArgs e)

{

int ret = axFKRealSvr1.OpenNetwork(7005);

Debug.WriteLine("open ret:" + ret);

}

private void button2_Click(object sender, EventArgs e)

{

int ret = axFKRealSvr1.CloseNetwork(7005);

Debug.WriteLine("close ret:" + ret);

}

public void axFKRealSvr1_OnReceiveGLogData(object sender , AxFKREALSVRLib._DFKRealSvrEvents_OnReceiveGLogDataEvent e)

{

// 这里的e还其它值,按需要使用

Debug.WriteLine(string.Format("num: {0}, date: {1}", e.anSEnrollNumber, e.anLogDate.ToString("yyyy-mm-dd HH:mm:ss")));

}

最后使用FKRealSvr.ocx还有一个要注意的地方,否则就不会得到任何数据

要注意的地方是,要在考勤机上作以下三个设置,服务器IP, 服务器端口, 是否同步传输选择是

这样就可以实时的收到打指纹的数据

最后

说明文档的说明写的有点绕口,而且我还没找到通过软件进行打卡的功能,如果找到这个,写个程序,每天在一定时间内自动打卡,呵呵!!!

最后的最后


http://www.ppmy.cn/news/305980.html

相关文章

CKA 07_Kubernetes 工作负载与调度 控制器 ReplicaSet Deployment Jobs CronJob

文章目录 1. Pod 的分类2. 控制器类型3. ReplicaSet3.1 工作原理3.2 何时使用 ReplicaSet3.3 创建 ReplicaSet3.4 修改 RS 管理 pod 的标签3.5 还原 RS 管理 pod 的标签 4. Deployment4.1 准备工作4.2 用例4.3 创建 Deployment4.4 Deployment 进行 Pod 的版本更新4.5 Deploymen…

JAVA中如何使用Socket 实现聊天功能?带具体代码说明

Java Socket 是 Java 标准库中用于网络编程的一种方式,通过 Socket 实现可以在不同的计算机之间进行数据传输。在聊天应用中,Socket 可以用来建立客户端和服务器之间的连接,实现用户之间的聊天交流。 一、建立服务器端 在建立服务器端时&am…

电脑联想小新连上蓝牙耳机依然外放,终于解决了

1、打开蓝牙设置 2、 拉到下面,点击 设备和打印机 3、找到 未指定/设备 里的蓝牙耳机。如果 设备 里未显示蓝牙耳机,点击 未指定 里蓝牙耳机的属性-服务,勾选音频接收器,设备里就会显示蓝牙耳机。 4、右击设备里的蓝牙耳机&#x…

联想S41-70拆机换内存条

注意: - 此机型只有一个内存卡槽 - 最大支持8G内存 步骤: 1、拧开后盖上的螺丝钉 2、用一字螺丝刀从插网线的口子出慢慢撬开后盖,一点一点来,不要急 3、将除了转轴其他三边都撬开之后,慢慢将后盖从转轴相对那边抬起…

联想笔记本e480恢复出厂设置_联想ThinkPad E480笔记本win10怎么改win7

[文章导读]联想ThinkPad E480是一款14寸笔记本,其搭载intel 酷睿第八代处理器的笔记本。预装的是win10系统,用户还是喜欢win7系统,该笔记本采用的第八代酷睿CPU,在安装WIN7过程中USB设备不能使用,且intel 8代没有发布win7的核心显卡驱动,所以需要采用win7新机型安装,那么…

thinkpad E470 安装ubuntu16.04双系统

小白thinkpad E470 安装ubuntu16.04双系统 刚拿到公司的电脑,被要求装个linux系统,连进入boot的快捷键是哪个都不知道,全程靠百度。 联想Thinkpad E470笔记本如何设置U盘启动?E470如何进入Bios设置U盘启动:http://www…

python基础语法学习--字符串

1、字符串定义 (1)单引号定义法 变量名 字符串 (2)双引号定义法 变量名 "字符串" (3)三引号定义法 变量名 """字符串""" 当用变量接收时为字符串,不…

支持128g内存的服务器cpu,酷睿i9或迎来最大更新 最多支持128G DDR4内存

Intel准备让第9代Core i系列桌面级处理器原生支持最大128GB DDR4内存。 如同在笔记本电脑使用的第8代Core i处理器加入原生32GB DDR4内存寻址能力,Intel稍早也确认在第9代Core i系列处理器中,增加最高可支持128GB DDR4内存的设计。 不过,就An…