中控考勤机-C#操作】的更多相关文章

引用:Interop.zkemkeeper.dll 实例化: public zkemkeeper.CZKEM axCZKEM1 = new zkemkeeper.CZKEM(); 首先从数据库中获取考勤机列表:表名“Machines”: 连接考勤机: bool bIsConnected = axCZKEM1.Connect_Net(machines.IP, machines.Port); machines.IP : 考勤机IP     machines.Port : 连接端口 默认 4370 获…
如果你用的是中控考勤机且考勤机能联网,那恭喜有福了! 最近发现考勤机提供web方式查询,经过调试可以用程序直接读取考勤机数据跨过考勤机软件及其access数据库,数据同步及时性.可靠性大幅提高. 通达oa2011已经支持 指纹考勤机  但只限中控iclock660 这款2000大洋的型号,通过本文的开发接口,可以与任意一款指纹机集成, 需求指纹机管理软件能实时保存数据: 我这里用的是 中控u160 指纹考勤机, 这款机器支持WIFI ,可以实现实时传输考勤数据,这也就意味着,用户采集指纹马上就能…
问题 前同事编写的对中控考勤机数据集成项目当中,打卡数据不能实时进行上传到平台当中,一直靠定时全量上传来同步数据. 阅读代码后,发现代码中有实时上传数据的逻辑,但是运行一段时间后,中控zkemkeeper SDK中的事件失效,导致员工打卡数据没有实时上传. 原因 查看中控SDK Demo中的示例代码,发现实现逻辑是一样的.唯一不同的是demo使用的是winform项目编写,打卡机同步项目是用windows服务项目编写的. 发现中控考勤机 zkemkeeper SDK是COM组件封装,这和winf…
公司使用的考勤机是中控的指纹考勤机,但是中控的型号乱七八糟,通过程序读出来的型号和实际标的型号不一致. 另外,提供的开发包的C#版本的Demo中调用 axCZKEM1.ReadAllUserID(iMachineNumber); 后调用 axCZKEM1.SSR_GetAllUserInfo(iMachineNumber, out sdwEnrollNumber, out sName, out sPassword, out iPrivilege, out bEnabled) 来获取所有用户信息时…
using System; using System.IO; using System.Net; using System.Text.RegularExpressions; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { using (var listerner = new HttpListener()) { listerner.AuthenticationSchemes = Au…
如何判断一款协同OA软件,是否智能,是否注重细节,是否足够成熟呢?产品的设计优势.功能特性,需要我们总结,也需要让更多的用户了解.功能到底强在哪里?下文中将给出一个详尽的答案. 软件安装 傻瓜化向导式安装,自动智能配置,无需专人指导和配置 客户端电脑无需安装任何软件,使用浏览器即可实现全球办公 权限控制 权限管理支持三员管理机制 根据角色控制菜单权限 可按模块根据部门.角色设置管理范围 各模块根据具体情况内置权限,权限控制更加灵活 通过角色排序号,管理范围设置,确保管理层次有序精确 支持设置辅助…
有时候我们在使用 GetSelection 功能让用户选择实体时,可能会给用户提供一些 keyword 选项,要接收用户选择的 keyword 选项,需要用到 PromptSelectionOptions.KeywordInput 事件. 但是,有时为了有时在用户选择了某个 keyword 项时,需要结束 GetSelection 主操作(这样体验性更好,用户更方便),但是一直没有找到解决的办法,试了好多方法都以失败告终. 今天,有一个功能又需要实现这一点,于是在群里问了一句,胖子说他 QQ 空…
本文的内容有别于之前文章中纯技术的探讨,会从业务逻辑.技术.团队和方法论的角度探讨如何快速高效地完成一个Android项目.当然,快速高效是有前提的,第一,本文依然是从研发的角度来谈如何把控项目的,而这种研发人正如陈皓在<技术人员的发展之路>中提到的,需要具备高效的学习能力和解决问题的能力.另外,快速需要保证质量,没有质量的速度是不负责任的. 一.业务逻辑 计算机科学的核心是通过数据结构和算法实现对现实世界的抽象,平台是会随着技术发展不断变迁的,只有数据本身所描述的这种抽象才是事物永恒的本质.…
在windos窗体中可以放置各种控件,以及为控件定义事件等等,而窗体的显示可以通过show方法以及showdialog方法.他们的区别是 show:运行程序的时候弹出新窗体,而该新窗体会一闪而过,最小化,然后接着运行下面的程序,不会考虑新窗体的中控件的操作对下面程序的影响. showdialog:弹出窗体的时候将程序中断在新的窗体,它的操作会对下面的程序产生影响,从而使新窗体影响下面运行的效果. 窗体的生命周期: 首次打开窗体为活动窗口并引发Activated 事件,之后接着引发 Loaded …
ThreadStart ts=new ThreadStart(a.f);//ThreadStart 是一个委托,用以关联a.f方法Thread th=new Thread (ts);//Thread是一个类,实例化对象时调用的构造函数参数为ts这个委托对象 th.Start();//线程开始 线程的同步控制:1.使用ManualResetEvent类,将该类的对象设置为无信号状态(Reset()方法)或有信号状态(Set()方法).WaitOne()方法阻止当前线程运行,直到收到ManualRe…