如何在C#项目中使用ZK4500指纹扫描仪SDK
我正在用C#开发一个项目,我想使用用户的指纹登录/验证该项目 我买了一台ZK4500指纹扫描器,并从微软获得了它的SDK。SDK是C++的。如何在C#项目中使用ZK4500指纹扫描仪SDK,c#,c++,sdk,fingerprint,biometrics,C#,C++,Sdk,Fingerprint,Biometrics,我正在用C#开发一个项目,我想使用用户的指纹登录/验证该项目 我买了一台ZK4500指纹扫描器,并从微软获得了它的SDK。SDK是C++的。 那么,如何将此SDK与我的C#项目集成以执行所需的功能呢?您需要添加对将出现在COM类型库下的ZKFPEngXControl的引用。之后,您可以使用ZKFPEngX类来执行任何需要的操作 using ZKFPEngXControl; 然后 ZKFPEngX fp = new ZKFPEngX(); fp.SensorIndex = 0; fp.InitE
那么,如何将此SDK与我的C#项目集成以执行所需的功能呢?您需要添加对将出现在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();
您可以在
oneroll(bool ActionResult,object ATemplate)
事件下存储指纹。执行begineroll()
后将调用此事件
//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
}
}
您可以尝试在OnCapture(bool ActionResult,object ATemplate)
事件下验证指纹。将手指放在扫描仪上时将调用此事件
在OnCapture事件上添加事件处理程序:
x.OnCapture += X_OnCapture;
调用事件时验证指纹(将手指放在扫描仪上):
我真的很高兴得到你的考虑,你的回答是有帮助的,在我看来一切都在正确的轨道上。但请您帮助我注册使用此设备的用户,然后根据注册的指纹授权用户指纹。SDK必须附带支持文档。仔细阅读,了解您可以使用的所有函数和方法。如果你找不到pdf文档文件,那么你可以要求它。是的,它有文档文件,但对我没有帮助。现在我想以字符串形式获取图像并将其存储到数据库中,如
zkfpeng.GetTemplateAsStringEx(“10”)
,但它返回null
,然后我将比较两个模板,一个来自数据库,一个来自现场生物识别设备,用于身份验证,如(zkfpeng.VerFingerFromStr>)(参考bTemp、sTemp、false、参考REG变更)
。现在我完全是在黑暗中涂鸦,请指导我是否适合你。谢谢。据我所知,要匹配两个指纹,你需要第三方SDK,比如下面链接中的那个,zk4500的SDK对此无能为力,除非你愿意开发自己的匹配软件链接:请不要将关键字标记为粗体。您应该使用标记来强调关键字。这篇文章正是您想要的:
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
}
}