2017-03-18 1 views
0

C#에서 지문을 사용하여 사용자를 로그인/인증하려는 프로젝트를 개발 중입니다.C# 프로젝트에서 ZK4500 지문 스캐너 SDK를 사용하는 방법

ZK4500 지문 인식 스캐너를 구입하여 http://www.zkteco.com/product/ZK4500_238.html에서 SDK를 받았습니다. SDK는 C++입니다.

그래서이 SDK를 C# 프로젝트와 통합하여 원하는 기능을 수행하려면 어떻게해야합니까?

+0

하지 마십시오 키워드 대담한. 태그를 사용하여 키워드를 강조해야합니다. –

답변

4

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. 예를 들어,이 메소드에 이것을 쓸 수 있습니다. imgdata이 bytes.You의 배열은 또한 당신의 목표를 달성하기 위해, ZKFPEngX 다른 방법을 사용할 수있다

object imgdata = new object(); 
bool b = fp.GetFingerImage(ref imgdata); 

. 양식이 닫힐 때 엔진을 닫아야합니다.

fp.EndEngine(); 
당신은 BeginEnroll()이 실행되었을 때 이벤트가 호출됩니다 OnEnroll(bool ActionResult, object ATemplate) Event.This에서 지문을 저장할 수
+0

나는 당신의 배려를 정말로 기쁘게 생각하며, 당신의 대답은 도움이되고, 나는 올바른 길로 나에게 보인다. 하지만이 장치를 사용하여 사용자를 등록하고 등록 된 지문에 대해 사용자 지문을 인증하는 데 더 많은 도움을 주실 수 있습니까? –

+0

SDK와 함께 지원 문서가 있어야합니다. 사용할 수있는 모든 기능과 방법을 신중하게 읽으십시오. pdf 문서 파일을 찾을 수 없으면 요청할 수 있습니다. – Khan

+0

예. 설명서 파일이 있지만 나에게 도움이되지 않습니다. 이제 이미지를 문자열로 가져 와서'zkfpeng.GetTemplateAsStringEx ("10")'과 같은 데이터베이스에 저장하려고하지만'null '을 반환하고 그 후에 데이터베이스에서 가져온 것과 템플릿에서 가져온 템플릿을 비교할 것입니다. 생체 인식 장치를 그 자리에서 인증 할 때 사용합니다. (zkfpEng.VerFingerFromStr (ref bTemp, sTemp, false, ref RegChanged)'. 이제 완전히 어둠 속에서 낙서하고 있습니다. *. –

1

.

//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 
    } 
} 
관련 문제