我正在C#中開發一個項目,爲此我想使用他們的指紋登錄/驗證用戶。如何在C#項目中使用ZK4500指紋掃描器SDK
我買了ZK4500指紋掃描儀,並從http://www.zkteco.com/product/ZK4500_238.html得到它的SDK。該SDK使用C++。
那麼如何將此SDK與我的C#項目集成以執行所需的功能?
我正在C#中開發一個項目,爲此我想使用他們的指紋登錄/驗證用戶。如何在C#項目中使用ZK4500指紋掃描器SDK
我買了ZK4500指紋掃描儀,並從http://www.zkteco.com/product/ZK4500_238.html得到它的SDK。該SDK使用C++。
那麼如何將此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是bytes.You的陣列也可以使用其他方法ZKFPEngX,實現自己的目標。請記住在表單關閉時關閉引擎。
fp.EndEngine();
我真的很高興能有你的考慮,你的答案是幫助和事情似乎在正確的軌道上。但是,請您幫助我更多地註冊使用此設備的用戶,然後授權用戶指紋登記指紋。 –
必須隨SDK一起提供支持文檔。仔細閱讀,瞭解您可以使用的所有功能和方法。如果您無法找到PDF文檔文件,那麼您可以要求它。 – Khan
是的,它有文檔文件,但對我沒有幫助。現在我想以字符串形式獲取圖像並將其存儲到數據庫,如'zkfpeng.GetTemplateAsStringEx(「10」)',但它返回null,之後我將比較兩個模板,一個來自數據庫,一個來自數據庫(zkfpEng.VerFingerFromStr(ref bTemp,sTemp,false,ref RegChanged)''現在我完全是在黑暗中塗鴉,所以請指導我,如果這對你是可行的。**感謝* *。 –
你可以存儲在OnEnroll(bool ActionResult, object ATemplate)
事件。該當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
}
}
您可以嘗試驗證OnCapture(bool ActionResult, object ATemplate)
事件下的指紋。當手指放在掃描儀上時會調用此事件。
上參考OnCapture事件添加事件處理程序:
x.OnCapture += X_OnCapture;
驗證指紋時被稱爲事件(手指放在掃描儀上):
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
}
}
請不要讓關鍵字膽大。您應該使用標籤來強調關鍵字。 –