如何在C#中使用最新ZK Teco SDK实现指纹、人脸及掌纹录入
集成ZK Teco新版SDK实现指纹、人脸及掌纹录入(C#)
环境准备
- 下载对应设备型号的ZK Teco官方最新SDK(需支持人脸/掌纹功能,优先选择适配当前设备系列的版本)
- 在C#项目中配置SDK引用:
- .NET Framework项目:直接添加SDK目录下对应dll的引用,设置
复制本地为True - .NET Core/.NET 5+项目:若SDK提供NuGet包则直接安装,否则通过COM互操作方式导入dll
- .NET Framework项目:直接添加SDK目录下对应dll的引用,设置
- 配置项目目标平台为
x86(ZK Teco多数SDK为32位,避免架构不兼容问题)
设备连接
- 初始化SDK核心客户端实例(新版SDK通常命名为
ZKEMClient或类似,替代旧版CZKEM) - 调用网络连接方法(如
Connect_Net)或串口连接方法(如Connect_COM),传入设备IP/串口参数、端口 - 通过
IsConnected属性或方法返回值验证连接状态,若失败可通过LastError属性获取错误码排查
生物特征录入实现
指纹录入(适配新版SDK逻辑)
- 调用
StartEnrollFinger启动指纹采集,可指定关联用户ID - 注册指纹数据接收事件(如
OnFingerDataReceived),回调中获取指纹模板字节数组 - 调用
SaveFingerTemplate将模板保存至设备或本地存储 - 采集完成后调用
StopEnrollFinger结束流程
人脸录入
- 确认设备支持人脸采集后,调用
StartEnrollFace启动采集,传入目标用户ID - 注册
OnFaceDataReceived事件,回调中获取人脸特征模板数据 - 调用
SaveFaceTemplate将模板与用户ID绑定并保存到设备(部分设备需采集多帧,需等待设备确认采集完成) - 完成后调用
StopEnrollFace终止采集
掌纹录入
- 调用
StartEnrollPalm启动掌纹采集(部分设备需区分手掌/掌纹类型,调用对应API) - 注册
OnPalmDataReceived事件获取掌纹模板数据 - 调用
SavePalmTemplate将模板关联用户ID并保存 - 采集结束后调用
StopEnrollPalm
代码示例片段
// 初始化SDK客户端 ZKEMClient zkClient = new ZKEMClient(); // 连接网络设备 bool connected = zkClient.Connect_Net("192.168.1.200", 4370); if (connected) { // 人脸录入回调 zkClient.OnFaceDataReceived += (sender, args) => { // 获取人脸模板 byte[] faceTemplate = args.TemplateData; // 保存模板到设备,用户ID为"001",模板索引0 bool saveSuccess = zkClient.SaveFaceTemplate("001", faceTemplate, 0); if (saveSuccess) { Console.WriteLine("人脸模板保存成功"); } // 停止采集 zkClient.StopEnrollFace(); }; // 启动人脸录入,关联用户ID"001" zkClient.StartEnrollFace("001"); } else { Console.WriteLine($"连接失败,错误码:{zkClient.LastError}"); }
注意事项
- 新版SDK API命名与旧版
Interop.zkemkeeper.dll差异较大,需以官方SDK附带的CHM文档或头文件为准 - 确保设备处于可录入状态(如未锁定、管理员权限已开启)
- 不同设备支持的生物特征类型及参数不同,需提前确认设备型号的功能规格
- 所有SDK调用建议添加异常捕获逻辑,通过
LastError属性排查调用失败原因
内容的提问来源于stack exchange,提问作者SamanNarimano
相关产品推荐
相关产品推荐

