Как использовать SDK сканера отпечатков пальцев ZK4500 в проекте C #

Я разрабатываю проект на C #, для которого я хочу войти / аутентифицировать пользователя, используя его отпечаток пальца.

Я купил сканер отпечатков пальцев ZK4500 и получил его SDK от http://www.zkteco.com/product/ZK4500_238.html. SDK находится в C ++.

Итак, как я могу интегрировать этот SDK с моим проектом C # для выполнения желаемой функциональности?

1

Решение

Вам необходимо добавить ссылку на ZKFPEngXControl, который появится в разделе «Библиотеки типов COM». После этого вы можете использовать класс 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();
5

Другие решения

Вы можете хранить отпечаток под 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 Event:

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
}
}
1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector