如何在C#项目中使用ZK4500指纹扫描仪SDK
我正在使用C#开发一个项目,我想使用他们的指纹登录/validation用户。
我买了一台ZK4500指纹扫描仪,并从http://www.zkteco.com/product/ZK4500_238.html获得了它的SDK。 SDK使用C ++。
那么如何将此SDK与我的C#项目集成以执行所需的function?
您需要添加将出现在COM类型库下的ZKFPEngXControl的引用。 之后,您可以使用ZKFPEngX类来执行您需要的任何操作。
using ZKFPEngXControl;
然后
ZKFPEngX fp = new ZKFPEngX(); fp.SensorIndex = 0; fp.InitEngine(); // Do validation as well as it returns an integer (0 for success, else error code 1-3) //subscribe to event for getting when user places his/her finger fp.OnImageReceived += new IZKFPEngXEvents_OnImageReceivedEventHandler(fp_OnImageReceived);
您可以编写自己的方法fp_OnImageReceived来处理事件。 例如,你可以用这种方法写出来;
object imgdata = new object(); bool b = fp.GetFingerImage(ref imgdata);
其中imgdata是一个字节数组。您还可以使用ZKFPEngX中的其他方法来实现您的目标。 请记住在表单关闭时关闭引擎。
fp.EndEngine();
您可以在OnEnroll(bool ActionResult, object ATemplate)
下存储指纹OnEnroll(bool ActionResult, object ATemplate)
Event.This事件将在执行BeginEnroll()
时BeginEnroll()
。
//Add an event handler on OnEnroll Event ZKFPEngX x = new ZKFPEngX(); x.OnEnroll += X_OnEnroll; private void X_OnEnroll(bool ActionResult, object ATemplate) { if (ActionResult) { if (x.LastQuality >= 80) //to ensure the fingerprint quality { string regTemplate = x.GetTemplateAsStringEx("9"); File.WriteAllText(Application.StartupPath + "\\fingerprint.txt", regTemplate); } else { //Quality is too low } } else { //Register Failed } }
您可以尝试validationOnCapture(bool ActionResult, object ATemplate)
事件下的指纹。 将手指放在扫描仪上时将调用此事件。
在OnCapture事件上添加事件处理程序:
x.OnCapture += X_OnCapture;
在调用事件(手指放在扫描仪上)时validation指纹:
private void X_OnCapture(bool ActionResult, object ATemplate) { if (ActionResult) //if fingerprint is captured successfully { bool ARegFeatureChanged = true; string regTemplate = File.ReadAllText(Application.StartupPath + "\\fingerprint.txt"); string verTemplate = x.GetTemplateAsString(); bool result = x.VerFingerFromStr(regTemplate , verTemplate, false, ARegFeatureChanged); if (result) { //matched } else { //not matched } } else { //failed to capture a valid fingerprint } }
- HtmlAgilityPack.HtmlNode没有SelectNodes的定义
- C DLL中的PInvoke char *在C#中作为String处理。 null字符问题
- 登录multithreading环境并进行测试
- 如何在Windows Mobile中注册WM_DEVICECHANGE消息的表单
- 如何为TextBox实现高效的撤消/重做function
- 你能在UWP的C#代码中使用C ++ DLL吗?
- 如何延迟加载具有多行的标准html表?
- 如何在启动时隐藏我的SmartDevice应用程序?
- 当将H.264帧复用到MP4时,Media Foundation IMFSinkWriter :: Finalize()方法在Windows 7下失败