关于考勤机

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, 服务器端口, 是否同步传输选择是

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

最后

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

最后的最后

二次开发包下载

我的demo

浩顺AC671指纹考勤机二次开发(demo)的更多相关文章

  1. 浩顺考勤机二次开发(第二版,附实测可用的demo)

    1.背景 之前写过一次浩顺考勤机的二次开发,不过那个版本还是有一些问题,后来更换了新的考勤机,又拿到了新的二次开发包,所以就有了这次这个版本 2.关于考勤机的一些说明 2.1 首先要给考勤机设定ip, ...

  2. 百度地图二次开发Demo

    单点标注:电子显示对应位置的图片,信息框 多点标注(批量点标注): 多点连线(基于多个点形成路径): 若须要Demo源码:请给我发邮箱 1507026255@qq.com 转载请注明小刘

  3. 大华门禁SDK二次开发(一)-技术沟通

    项目中需要能够查询门禁信号和控制门禁设备,因此需要基于大华门禁SDK进行二次开发,开发语言C#.门禁开发中遇到了一些问题,经过与大华技术的邮件沟通也一一解决.做这个开发的时候,发现网上的资料比较少,想 ...

  4. 关于FlexPaper 2.1.2版本 二次开发 Logo 、打印、搜索、缩略图、添加按钮、js交互、右键菜单、书签等相关问题

    2015-03-02 更新文章,由于需求修改,更改了flexpaper插件,故增加第9.10.11小节,下载代码时请注意. 先废话几句.最近用到文档在线浏览功能,之前用的是print2flash(一个 ...

  5. 通达OA 指纹考勤机接口 源代码

    通达oa2011已经支持 指纹考勤机  但只限中控iclock660 这款2000大洋的型号 通过本文的开发接口,可以与任意一款指纹机集成, 需求指纹机管理软件能实时保存数据 我这里用的是 中控u16 ...

  6. Ecshop文件结构,二次开发

    文件结构,二次开发有用 ECShop 2.6.2 的结构图及各文件相应功能介绍 ECShop2.6.2 upload 的目录 ┣ activity.php 优惠活动列表 ┣ affiche.php 广 ...

  7. openfire spark 二次 开发 服务插件

    ====================  废话 begin   ============================ 最近老大让我为研发平台增加即时通讯功能.告诉我用comet 在web端实现即 ...

  8. kettle工具二次开发-代码启动JOB

    kettle工具是一款优秀的数据同步.数据处理的BI工具,收到了很多人的青睐.kettle软件通过可视化的图标可以让我们很轻易的能完成数据同步.处理的开发工作.但是使用kettle可视化界面在跑JOB ...

  9. C#进行CAD二次开发环境配置

    最近被公司分配到了做CAD二次开发.也是初次接触这方面的东西,其实是有些无从下手的感觉.因为公司这边也没有人有时间带我,只能是自己看书,然后再写一些Demo,再结合实际的应用来一点点的学习.废话不多说 ...

随机推荐

  1. 关于进程间通信的总结(IPC)

    一:三个问题 进程间通信简单的说有三个问题.第一个问题是一个进程如何把信息传递给另一个.第二个要处理的问题是是,要确保两个或更多的的进程在关键互动中不会出现交叉(即是进程互斥的问题),第三个问题是与正 ...

  2. vi 技巧

    :%s/^/\//   行首加 / :%s/$/\//    行尾加/ :%s/^\///g   行首减 / :%s/\/$//g   行尾减/ :%s/^\s*//g  行首减 空格   

  3. [DevExpress]RepositoryItemComboBox 数据绑定

    关键代码: public static void Bind<T>(this RepositoryItemComboBox combox, ICollection source) { /*说 ...

  4. RequireJS入门与进阶

    RequireJS由James Burke创建,他也是AMD规范的创始人. RequireJS会让你以不同于往常的方式去写JavaScript.你将不再使用script标签在HTML中引入JS文件,以 ...

  5. [Interview][CodingExam]

    這次去Interview, 其中有一個公司 把我列為 2/25的考慮對象, 在Final 的 1/2, 我被刷掉了. 因為第一輪的程式,我稍微google了一下,參考了既有的寫法. 即使第二輪我用完全 ...

  6. Mysql 存储过程小例子

    创建存储过程: DELIMITER $$ USE `database_name`$$ DROP PROCEDURE IF EXISTS `add_or_update_user`$$ )) BEGIN ...

  7. WPF处理Windows消息

    WPF中处理消息首先要获取窗口句柄,创建HwndSource对象 通过HwndSource对象添加消息处理回调函数. HwndSource类: 实现其自己的窗口过程. 创建窗口之后使用 AddHook ...

  8. 1054. The Dominant Color (20)

    时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Behind the scenes in the compute ...

  9. PL/SQL数据导入导出浅谈(1)

    近来需要通过PL/SQL向Oracle中导数据,特此总结一下 试例表:test 字段:id;name;org; 1.直接复制粘贴(当数据量不是特别大的时候) 1)使用select * from tes ...

  10. Linux的安全模式

    今天尝试了一下开机启动,在rc.local中进行设置,但是我写的java -jar transport.jar是一个Hold处理,无法退出:导致开机的时候一直停留在等待页面. 处理机制: 1. 在Li ...