Bio Key Developer's Guide
Bio Key Developer's Guide
ZKSoftware Inc.
If the content of this manual is changed, sorry that no further notice will be given.
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
User Registration
After you have bought this product, please fill in User Registration Form carefully. If you send the completed form to our company by fax or email, you will become a legitimate user of this product, and you are able to obtain our total technical support service and information related to upgrading of this software version! User Registration Form 1 You bought the software on (Date):____/__/__ at (Place):___________________ ___________________ 2Your name: ___________ Position:___________ Addressing: [ ]Sir [ ]Madam Telephone: _______________ E-mail: _______________ Address:_____________________________ 3The name of your company:_________________________ _________________________ The abbreviation of your company: _________________________ Company address: _______Province/City________City/District_________________________ Zip code: _______ Company Telephone: (____)____________
ZKSoftware Inc. http://www.zksoftware.com
ZKSoftware Inc.
Staff number: [ ] <100 persons [ ] 101to 200 persons [ ] 201to 500 persons [ ] 501to 1000 persons [ ] above 1000 persons Website: _________________________ Email address: _________________________ 4Are you willing to receive our product upgrading notice? new product advertisement? technique information express? website upgrading notice?
[ [ [ [
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
Table of Contents
1. 2. 3. BIOKEY ALGORITHM DESCRIPTION...................................................1 BIOKEY SDK ARCHITECT........................................................................3 SOFTWARE INSTALLATION ....................................................................5 3.1 DISC FILES AND DIRECTORY ...........................................................................5 3.2 SOFTWARE INSTALLATION ..............................................................................6 4ACTIVEX CONTROL REFERENCE...........................................................9 4.1 PROPERTY .......................................................................................................9 4.1.1 Active as Boolean ....................................................................................9 4.1.2 EngineValid as Boolean ..........................................................................9 4.1.3 EnrollIndex As Long..............................................................................10 4.1.4 EnrollCount As Long.............................................................................10 4.1.5 FPEngineVersion AS String ..................................................................10 4.1.6 ImageHeight AS integer ........................................................................10 4.1.7 ImageWidth AS integer..........................................................................10 4.1.8 IsRegister As Boolean ...........................................................................10 4.1.9 OneToOneThreshold As Boolean .......................................................... 11 4.1.10 RegTplFileName As String .................................................................. 11 4.1.11 SensorCount As Long .......................................................................... 11 4.1.12 SensorIndex AS Long .......................................................................... 11 4.1.13 SensorSN As String.............................................................................. 11 4.1.14 TemplateLen As Long ..........................................................................12 4.1.15 Threshold As Long...............................................................................12 4.1.16 VerTplFileName As String ...................................................................12 4.2 METHODS .....................................................................................................12 4.2.1 Sub BeginEnroll()..................................................................................13
ZKSoftware Inc. http://www.zksoftware.com
ZKSoftware Inc.
4.2.2 Sub CancelEnroll()................................................................................13 4.2.3 Function DongleIsExist As Boolean .....................................................13 4.2.4 Function DongleSeed(Byval lp2 As Long, Byval p1, p2, p3, p4 As Integer) As Boolean .......................................................................................13 4.2.5 Function DongleUserID As Long .........................................................13 4.2.6 Function DongleMemRead(Byval p1, p2 As Integer, buf) As Boolean .14 4.2.7 Function DongleMemWrite(Byval p1, p2 As Integer, buf) As Boolean .14 4.2.8 Function GetTemplate() ........................................................................14 4.2.9 Function GetFingerImage(Byval AFingerImage) As Boolean..............14 4.2.10 Function InitEngine() As Long............................................................14 4.2. 11 Function VerFinger(byval regTemplate, verTemplate, AdoLearning As Boolean, byval AregFeatureChanged As Boolean) As Boolean.....................15 4.2.12 Function VerFingerFromFile(regTemplateFile As String, verTemplateFile As StringAdoLearning As Boolean, byval AregFeatureChanged As Boolean) As Boolean .............................................16 4.2.13 Function VerRegFingerFile(RegTemplateFile As String, verTemplate AdoLearning As Boolean, byval AregFeatureChanged As Boolean) As Boolean ..........................................................................................................16 4.2.14 Sub PrintImageAt(HDC As OLE_HANDLE, X As Long, Y As Long, aWidth As Long, aHeight As Long) ................................................................17 4.2.15 Sub PrintImageEllipseAt(HDC As OLE_HANDLE, X As Long, Y As Long, aWidth As Long, aHeight As Long, bkColor As OLE_COLOR) ..........17 4.2.16 Sub SaveBitmap(FileName As String).................................................17 4.2.17 Sub SaveJPG(FileName As String) .....................................................17 4.2.18 Function SaveTemplate(FileName As String, Template) As Boolean ..18 4.2.19 function EncodeTemplate(ASour, var ADest As String) As Boolean 18 4.2.20 function DecodeTemplate(const ASour As String, ADest) As Boolean18 4.2.19 function EncodeTemplate1(ASour) As String ...................................19 4.2.20 function DecodeTemplate1(const ASour As String) As Variant ...........19 4.2.21 Sub BeginCapture().............................................................................19
ZKSoftware Inc. http://www.zksoftware.com
ZKSoftware Inc.
4.2.22 Sub EndEngine() .................................................................................19 4.2.23 Function AddRegTemplateToFPCacheDB(fpcHandle As Long, FPID As Long, pRegTemplate) As Long ..................................................................20 4.2.24 Function AddRegTemplateFileToFPCacheDB(fpcHandle As Long, FPID As Long, pRegTemplateFile As String) As Long ..................................20 4.2.25 Function CreateFPCacheDB As Long ................................................20 4.2.26 Sub FlushFPImages () ........................................................................21 4.2.27 Sub FreeFPCacheDB( fpcHandle As Long)........................................21 4.2.28 Function IdentificationFromFileInFPCacheDB (fpcHandle As Long, pVerTemplateFile As String, Byval Score As Long, Byval ProcessedFPNumber As Long) As Long ........................................................21 4.2.29 Function IdentificationInFPCacheDB (fpcHandle As Long, pVerTemplate, Byval Score As Long, Byval ProcessedFPNumber As Long) As Long ..........................................................................................................22 4.2.30 Function IsOneToOneTemplate (ATemplate) As Boolean ...................23 4.2.31 Function ModifyTemplate(byval Atemplate, AOneToOne As Boolean) As Boolean .....................................................................................................23 4.2.32 Function RemoveRegTemplateFromFPCacheDB (fpcHandle As Long, FPID As Long) As Long .................................................................................23 4.2.33 Sub CancelCapture() ...........................................................................24 4.2.34 Function AddBitmap(BitmapHandle As OLE_HANDLE, ValidRectX1 As Long, ValidRectY1 As Long, ValidRectX2 As Long, ValidRectY2 As Long, DPI As Long) As Boolean ..............................................................................24 4.2.35 Function AddImageFile(FileName As String, DPI As Long) As Boolean ..........................................................................................................24 4.3 EVENTS .........................................................................................................25 4.3.1 OnCapture(ActionResult AS Boolean, ATemplate)................................25 4.3.2 OnCaptureToFile(ActionResult AS Boolean) ........................................25 4.3.3 OnEnroll(ActionResult AS Boolean, ATemplate) ..................................25 4.3.4 OnEnrollToFile(ActionResult AS Boolean) ...........................................25
ZKSoftware Inc. http://www.zksoftware.com
ZKSoftware Inc.
4.3.5 OnFeatureInfo(AQuality As Long)........................................................26 4.3.6 OnImageReceived(byval AImageValid As Boolean) .............................26 5TASK FLOW DESCRIPTION .....................................................................27 6COMMON QUESTIONS DESCRIPTION .................................................30 6.1 THE DIFFERENCE BETWEEN 1:1 CONTROL AND 1:N CONTROL .....................30 6.2 READ-IN AND READ-OUT FINGERPRINT TEMPLATES IN DATABASE ..............30 6.3 SOFTWARE DOGGLE AND AUTHORIZED LICENSE DOCUMENTATION .............33 6.4 THE USE OF 1:N HIGH-SPEED BUFFER ...........................................................33 6.5 USING FINGERPRINT IMAGES ........................................................................34 6.6 SETTING FINGERPRINT IDENTIFICATION THRESHOLD ....................................34 6.7 SOLUTIONS TO LOW-QUALITY FINGERPRINT TEMPLATES FOR 1:N IDENTIFICATION ..................................................................................................34 6.8 CONNECTING MULTIPLE FINGERPRINT SENSORS ...........................................38 7DEMO PROGRAM DESCRIPTION ..........................................................39 8BIOKEY SDK DEVELOPMENT LICENSE AGREEMENT ...................44 9SOFTWARE AFTER-SALE SERVICE.......................................................50 10CONTACT US ..............................................................................................52
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
ZKSoftware Inc.
points >=15)this function can also be achieved. 4 Biokey algorithm does not require global feature points (core point, triangular point), and identification can be completed by local feature points. Through classification algorithm (fingerprints are classified into five categories: arch category, left loop category, right loop category, tine arch category, and vortex category), Biokey use global feature ordering in advance, which accelerates the process of fingerprint verification remarkably. Biokey algorithm is quite concise: data only need 350K memory, so that they can easily be imported into embedded systems.
Biokey was used to test 2000 pieces of fingerprints collected from four Sensors (YLC, DFR200, U.are.U, Authentec)every piece of fingerprint was verified with the other ones, and verification and test were carried out for altogether 4,000,000 timesand eventually the following test results were achieved: Template size Rotation FAR FRR Registration time Average verification speed Image quality 310 or 1152 Byte 0 360 degree <= 0.001% <= 2.0% 0.5 second 2500 pieces/second >=300DPI
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
SDK Architecture
Application Program
Device Driver
Other fingerprint
Fingerprint Image
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
3. Software Installation
3.1 Disc Files and Directory
Open the Biokey SDK disc, and information about the directory and file will
appear as the following: Setup.exeInstallation program for fingerprint Reader driver and Doggle driver; License.rtfDevelopment License Agreement. Open the SDK directory, and the following directory and file information will be shown:
Manual.docSDK Instruction Manual; ManyOne-to-many identification development; OneOne-to-one identification development. Open the One or Many directory, the following information about the
ZKSoftware Inc.
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
Click Next button, and you can enter the following operation steps:
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
Press Installation button, and begin to install Fingerprint driver and Doggle driver. 2 Copy the following file to Windows (c:\windows\system) Biokey.ocx Control Base File system directory
3Register control Biokey.ocx c:\windows\system\regsvr32.exe c:\windows\system\biokey.ocx Notice: 1 The installation program only installs fingerprint Reader driver and Doggle driver, and other development files should be copied by users to respective directories by hand; 2 By means of Doggle license, please make sure that Doggle is adequately connected to the parallel port on the computer; 3 By means of agreement file, it is needed to copy the agreement file to the current program execution directory or Windows system directory.
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
4.1 Property
4.1.1 Active as Boolean
Read only Whether the fingerprint Reader set by the currentSensorIndex has got ready or not.
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
10
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
ZKSoftware Inc.
http://www.zksoftware.com
11
ZKSoftware Inc.
4.2 MethodS
The same method for the control interfaces of 11 and 1 N:
12
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
4.2.4 Function DongleSeed(Byval lp2 As Long, Byval p1, p2, p3, p4 As Integer) As Boolean
Obtain four 16-digital integral (p1, p2, p3, p4) return values for the seed code lp2. Doggle can compute a seed code by interior algorithm, which results in four return codes. Seed code algorithm is not open, and by examining whether the return codes are of the expected value we can examine whether Doggle is existing or not.
ZKSoftware Inc.
http://www.zksoftware.com
13
ZKSoftware Inc.
ZKSoftware Inc.
2 Fingerprint Sensor has not been connected. 3 The fingerprint Reader appointed by the property SensorIndex dose not exist (Notice: Set the property SensorIndex before calling the function). Method EndEngine can be used to release the fingerprint device system.
4.2. 11 Function VerFinger(byval regTemplate, verTemplate, AdoLearning As Boolean, byval AregFeatureChanged As Boolean) As Boolean
Compare whether the feature templates for two pieces of fingerprints are matched or not. Here, regTemplate represents fingerprint registration feature templates, verTemplate expresses fingerprint verification feature templates which are collected on the spot, AdoLearning denotes whether to carry out fingerprint feature template learning updating or not, and AregFeatureChanged shows whether the registration template regTemplate has been changed or not. True will be returned when the two pieces of fingerprints are matched, and False will be returned when not matched. Explanation: The fingerprint feature will vary to certain extent with the time, usually which will not pose an influence on the verification of fingerprints. While by fingerpirnt feature template learning updating, the system can obtain an integrated new template, so as to lower the FRR.
ZKSoftware Inc.
http://www.zksoftware.com
15
ZKSoftware Inc.
4.2.12 Function VerFingerFromFile(regTemplateFile As String, verTemplateFile As String AdoLearning As Boolean, byval AregFeatureChanged As Boolean) As Boolean
Compare whether the feature templates for two pieces of fingerprints are matched or not. Here, regTemplate represents fingerprint registration feature templates, verTemplate expresses fingerprint verification feature templates which are collected on the spot, AdoLearning denotes whether to carry out fingerprint feature template learning updating or not, and AregFeatureChanged shows whether the registration template regTemplate has been changed or not. True will be returned when the two pieces of fingerprints are matched, and False will be returned when not matched.
4.2.13 Function VerRegFingerFile(RegTemplateFile As String, AdoLearning As Boolean, byval AregFeatureChanged verTemplate As Boolean) As Boolean
Compare whether the feature templates for two pieces of fingerprints are matched or not. Here, regTemplate represents previous fingerprint registration feature templates in the file specified by FileName, verTemplate expresses fingerprint feature templates which are collected on the spot, AdoLearning denotes whether to carry out fingerprint feature template learning updating or not, and AregFeatureChanged shows whether the registration template regTemplate has been changed or not. True will be returned when the two pieces of fingerprints are matched, and False will be returned when not matched.
16
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
4.2.14 Sub PrintImageAt(HDC As OLE_HANDLE, X As Long, Y As Long, aWidth As Long, aHeight As Long)
At the location specified by (x,y), display the fingerprint image in accordance with the size specified by (aWidth, aHeight). HDC is the HDC for the window in which the fingerprint will be shown.
4.2.15 Sub PrintImageEllipseAt(HDC As OLE_HANDLE, X As Long, Y As Long, aWidth As Long, aHeight As Long, bkColor As OLE_COLOR)
At the location specified by (x,y), display the fingerprint image in accordance with the size specified by (aWidth, aHeight). HDC is the HDC for the window in which the fingerprint will be shown. Here the fingerprint image is surrounded by an ellipse.
ZKSoftware Inc.
http://www.zksoftware.com
17
ZKSoftware Inc.
Transfer the Variant template Asour used by the control into the template string Adest, which is BASE64 formatted.
Transfer the template string Asour which is BASE64 formatted into the Variant-typed template Asour used by the control. The above-mentioned two methods are mainly used for saving database of templates. Variant-typed templates are saved in the manner of binary-formatted arrays, which are quite difficult for languages such as PB, VB, etc. Method EncodeTemplate can transfer Variant-typed codes into strings, and method DecodeTemplate can transfer string-typed codes into codes of Variant-typed. Here, we should pay attention that the template length will be increased after the template variable BASE64 code has been transferred into the string.
18
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
ZKSoftware Inc.
http://www.zksoftware.com
19
ZKSoftware Inc.
ZKSoftware Inc.
At the same time multiple buffers can be created for group comparison and others.
4.2.28 Function IdentificationFromFileInFPCacheDB (fpcHandle As Long, pVerTemplateFile As String, Byval Score As Long,
ZKSoftware Inc.
fingerprint registration templates in the buffer, and this function returns the fingerprint label for the fingerprint registration template which is matched successfully; If all the scores for the verification between all the fingerprint verification templates and all the fingerprint identification templates located in the fingerprint identification high-speed buffer, but meanwhile the highest score for the verification is equal to or larger than Score, then it is viewed that the verification is matched successfully. In this case, this function will return the label of the fingerprint registration template which gets the highest verification score, whose recommendation value is 9.
4.2.29 Function IdentificationInFPCacheDB (fpcHandle As Long, pVerTemplate, Byval Score As Long, Byval ProcessedFPNumber
As Long) As Long
Compare all the registration templates in the fingerprint verification template file pVerTemplateFile and the fingerprint identification high-speed buffer fpcHandle. Score represents the highest score among ProcessedFPNumber times of verification, and ProcessedFPNumber shows the times of verification. The fingerprint label will be returned if the identification is successful, and 1 is returned if failed. Notice: During the process of identification, if the verificaiton score is equal to or larger than the property Threshold, then it is considered that the verification is successful. In this case, no further verification will be carried out for the rest of fingerprint registration templates in the buffer, and this function returns the fingerprint label for the fingerprint registration template which is matched successfully; If all the scores for the verification between all the fingerprint verification
22 ZKSoftware Inc. http://www.zksoftware.com
ZKSoftware Inc.
templates and all the fingerprint identification templates located in the fingerprint identification high-speed buffer, but meanwhile the highest score for the verification is equal to or larger than Score, then it is viewed that the verification is matched successfully. In this case, this function will return the label of the fingerprint registration template which gets the highest verification score, whose recommendation value is 9.
ZKSoftware Inc.
http://www.zksoftware.com
23
ZKSoftware Inc.
24
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
4.3 Events
4.3.1 OnCapture(ActionResult AS Boolean, ATemplate)
Capture the fingerprint verification template Atemplate for verification. ActionResult =true indicates that the fingerprint template is obtained successfully, and False represents a failure.
ZKSoftware Inc.
26
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
IsRegister = True
OnFeatureInfo
No
ZKSoftware Inc.
http://www.zksoftware.com
27
ZKSoftware Inc.
OnImageReceived
Image
OnFeatureInfo
28
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
Task Flow Description: After the fingerprint Sensor has entered the working status, call BeginEnroll to enter fingerprint registration status, and call BeginCapture to enter fingerprint verification status. The working mode is based on event motivation, and events can be triggered in an order as shown in the above sketch graph. It is usually needed to press the same finger for 1 to 4 times for fingerprint registration, and a fingerprint registration template will be obtained after the identification system integrates them. The times number needed for pressing the finger at registration is defined by the control property EnrollCount, and events OnEnroll and OnEnrollToFile will be triggered if the defined times number is arrived at. At fingerprint verification, events OnCapture and OnCaptureToFile will be triggered after pressing the finger. At this moment, VerFinger or IdentificationInFPCacheDB can be called to carry out 1:1 or 1:N verification. It should be paid attention to that event OnFeatureInfo will be triggered when a finger is being pressed for each time. If the fingerprint template of the finger which is being pressed, is not qualified, this time the image captured is invalid, and the finger should be re-pressed.
ZKSoftware Inc.
http://www.zksoftware.com
29
ZKSoftware Inc.
6.2
Read-in
and
Read-out
Fingerprint
Templates in Database
In SDK fingerprint templates are saved and called by means of Variant variable. What is stored is one-dimension binary arrays, which can not be read-in
30 ZKSoftware Inc. http://www.zksoftware.com
ZKSoftware Inc.
and read-out by SQL sentences as for character strings. There are two solutions: 1 Method EncodeTemplate and method DecodeTemplate are able to make BASE64 code transfer between Variant variables and string variables. One point, which should be improved, is that after variables being transferred into strings, the template length will be increased by about 1/3. 2 Directly work on Variant variables. An example is shown as the following: Delphi, CB
procedure TFPProcess.SaveFPData(AQuery: TADOQuery; AFingerID: Integer; AFPData: OleVariant); var pData: PChar; begin with AQuery do begin Close; SQL.Clear; SQL.Add('SELECT * FROM zkFingerPrint WHERE FingerID = ' + IntToStr(AFingerID)); Open; if IsEmpty then Append else Edit; FieldByName('FingerID').Value := AFingerID; //Save the fingerprint template with TBlobStream(CreateBlobStream(FieldByName('Template'), bmWrite)) do begin pData := VarArrayLock(AFPData); try Write(pData^, VarArrayHighBound(AFPData, 1) - VarArrayLowBound(AFPData, 1) + 1); finally VarArrayUnlock(AFPData); end; ZKSoftware Inc. http://www.zksoftware.com 31
procedure TFPProcess.GetFPData(AQuery: TADOQuery; AFingerID: Integer; var AFPData: OleVariant); var pData: PChar; begin with AQuery do begin Close; SQL.Clear; SQL.Add('SELECT * FROM zkFingerPrint WHERE FingerID = ' + IntToStr(AFingerID)); Open; //read-out data if not IsEmpty then with TBlobStream(CreateBlobStream(FieldByName('Template'), bmRead)) do begin AFPData := VarArrayCreate([0, Size + 1], varByte); pData := VarArrayLock(AFPData); try Read(pData^, Size); finally VarArrayUnlock(AFPData); end; Free; end; Close; end; 32 ZKSoftware Inc. http://www.zksoftware.com
For other languages, please refer to the technical discussion forum on www.zksoftware.com.
ZKSoftware Inc.
6.6
Setting
fingerprint
identification
threshold
In 1:1 Control, the recommendation value for the property Threshold is 10. In this case, FAR is about 0.01%, and FRR ranges from 1.5% to 2%. In 1:1 Control, the recommendation value for the property Threshold is 10. In this case, FAR is about 0.001%, FRR is about 3%, and the recommendation value for the property OneToOneThreshold is 10.
6.7
Solutions
to
low-quality
fingerprint
ZKSoftware Inc.
which should not be mixed up. Registration templates of high quality are labeled as Biokey high-speed verification feature templates. In normal application environments, about 5% of the total fingerprint registration templates will be labeled as low-speed verification feature templates. The method IsOneToOneTemplate can be used to judge whether the template is a low-speed verification feature template, and the method ModifyTemplate can be used to modify grouping labels which distinguish templates of high quality from those of low quality forcefully. Biokey 1:1 low-speed verification is quite slow (about 30ms for PII 233), thus not too many low-speed verification feature templates can be added to the high-speed buffer by the method AddRegTemplateToFPCache; otherwise the verification speed will be impacted. In 1:N Control, fingerprint identification by IdentificationInFPCacheDB is carried out in the way as shown in the following flow chart:
ZKSoftware Inc.
http://www.zksoftware.com
35
ZKSoftware Inc.
IdentificationFromFileInFPCacheDB (fpcHandle As Long, pVerTemplateFile As String, Byval Score As Long, Byval ProcessedFPNumber As Long) As Long
Verification Templates
Classify Templates
Verify Fingerprints
Yes
Verification Score>=Threshold
N Verification Y
All Verification
Y
Highest score for question fingerprints>=Score
36
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
TRUE
TRUE Verification Y N
All
Yes Verificatio
Return
Verification
ZKSoftware Inc.
http://www.zksoftware.com
37
ZKSoftware Inc.
38
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
ZKSoftware Inc.
http://www.zksoftware.com
39
ZKSoftware Inc.
At first, press Initialize button to initialize the fingerprint Sensor. If the initialization is successful, a prompt message which indicates a success will be shown. The initialization code is as the following: If ZKFPEngX1.InitEngine = 0 Then MessageBox 0, "Initialization succeeds", "Prompt message", 0 StatusBar.Caption = "Fingerprint Sensor connection" TextSensorCount.Text = ZKFPEngX1.SensorCount & "" TextSensorIndex.Text = ZKFPEngX1.SensorIndex & "" TextSensorSN.Text = ZKFPEngX1.SensorSN cmdInit.Enabled = False FMatchType = 0 End If Press the Register Fingerprint button to enter the fingerprint registration status, and the code is like the this: If Trim(TextFingerName.Text) = "" Then MessageBox 0, "Please enter the fingerprint name label! ", "False", 0 Exit Sub End If ZKFPEngX1.BeginEnroll StatusBar.Caption = "Start registration" At this moment, the fingerprint Sensor is under the status of registration, and every time pressing a finger will trigger events OnImageReceived (display images)and OnFeatureInfojudge whether the fingerprint is qualified or not.
40 ZKSoftware Inc. http://www.zksoftware.com
ZKSoftware Inc.
Pressing a finger for one or four effective times (not counting times if the finger is unqualified) will trigger events OnEnroll and OnEnrollToFile, and the specific pressing times number is set by the property EnrollCount. OnEnroll code is like this : Dim i As Long If Not ActionResult Then MessageBox 0, "Fingerprint registration failed! ", "Warning", 0 Else MessageBox 0, "Fingerprint registration succeeded!", "Message", 0 FRegTemplate = ATemplate ZKFPEngX1.SaveTemplate "c:\fingerprint.tpl", ATemplate ZKFPEngX1.AddRegTemplateFileToFPCacheDB fpcHandle, FingerCount, "c:\fingerprint.tpl" ReDim Preserve FFingerNames(FingerCount + 1) FFingerNames(FingerCount) = TextFingerName.Text FingerCount = FingerCount + 1 End If Parameter ActionResult=True indicates successful registration, and parameter Atemplate represents the fingerprint registration template; otherwise the registration failed. Press the button Verify Fingerprint to enter the status of fingerprint verification, and the fingerprint Sensor will be under the status of verification. Pressing a finger will trigger events OnImageReceived (display images) and OnFeatureInfo judge whether the finger is qualified or not, and a qualified fingerprint will trigger events OnCapture and OnCaptureToFile verify by the verification method.
ZKSoftware Inc. http://www.zksoftware.com 41
ZKSoftware Inc.
OnCapture code is like this: Dim fi As Long, i As Long Dim Score As Long, ProcessNum As Long Dim RegChanged As Boolean StatusBar.Caption = "capture fingerprint feature" If FMatchType = 1 Then '1:1 If ZKFPEngX1.VerFinger(FRegTemplate, ATemplate, False, RegChanged) Then MessageBox 0, "Fingerprint verification succeeded! ", "Prompt message", 0 Else MessageBox 0, "Fingerprint verification failed! ", "Prompt message", 0 End If 'If ZKFPEngX1.VerRegFingerFile("c:\fingerprint.tpl", ATemplate) Then ' MessageBox 0, "File fingerprint verification succeeded! ", "Prompt message", 0 'Else ' MessageBox 0, "File fingerprint verification failed! ", "Prompt message", 0 'End If ElseIf FMatchType = 2 Then '1:N Score = 8 fi = ZKFPEngX1.IdentificationInFPCacheDB(fpcHandle, ATemplate, Score, ProcessNum) If fi = -1 Then MessageBox 0, "Fingerprint verification failed", "Prompt message", 0 Else MessageBox 0, "Fingerprint verification succeeded Name=" &
42 ZKSoftware Inc. http://www.zksoftware.com
ZKSoftware Inc.
FFingerNames(fi) & " Score = " & Score & " Processed Number = " & ProcessNum, "Prompt information", 0 End If End If OnImageReceived event code (display fingerprint images): ZKFPEngX1.PrintImageAt hDC, FrameCommands.Width + FrameCommands.Top, ZKFPEngX1.ImageWidth, ZKFPEngX1.ImageHeight OnFeatureInfo event code (judge fingerprint quality): Dim sTemp As String sTemp = "" If ZKFPEngX1.IsRegister Then sTemp = "registration status: press again" & ZKFPEngX1.EnrollIndex & "time fingerprint!" End If sTemp = sTemp & " fingerprint quality" If AQuality <> 0 Then sTemp = sTemp & "Unqualified: " & AQuality Else sTemp = sTemp & "Qualified" End If StatusBar.Caption = sTemp Press Doggle Read Memory button, and the controls version information will be shown in the corresponding edition box; if no information is shown, it means that Doggle has not been plugged in, or the driver has not been installed. 6,
ZKSoftware Inc.
http://www.zksoftware.com
43
ZKSoftware Inc.
ZKSoftware Inc.
terms and conditions clearly set up hereinto) to use the products of ZKSoftware Inc, which is not exclusive and can not be transferred, and these licenses and rights are stated by the terms and conditions herein. The software components of ZKSoftwares products, including any editing, correcting, modifying, adding or updating ZKSoftware Development Manual, any other files or user guide related to the software, will reserve the property for ZKSoftware Inc. All software (including, but not limited to: task products derived from the software codes and the second part of this agreement) consist of or express the pertinent intelligence property (including, but not limited to: copyright, commercial secrets, trade marks, and so on), and ZKSoftware Inc.s Development Manual and any other files are, and should be only possessed by ZKSoftware Inc. Under any laws and rules, any content in this agreement does not construct the wavering of ZKSoftware Inc.s intelligence property 2 License You are allowed with limit to use the software, which must be stated by this agreement and must also be executable file formatted. a) You can install and use the software in the computer in your office. b) You are allowed to have copies of the software of reasonable number, which can not surpass three. c) You can connect and copy the software to your computers programs, only for the purpose of the development of this computers programs, as described in ZKSoftware Inc.s Development Manual; but, any parts connected and copied to another computer is viewed as derived products, and the terms and conditions in this agreement should also be observed. 3 License Transfer
ZKSoftware Inc. http://www.zksoftware.com 45
ZKSoftware Inc.
According to the description in the second part, in you computers programs, after you plug in the software, you may integrate the plugged-in software and the software purchased from ZKSoftware Inc., and then transfer the license to a seller or a user in accordance with the terms and conditions in this agreement. Before transferring the license, you should add the clauses related to guaranty, waiver and license stated by ZKSoftware Inc. in this agreement to the new agreement signed by you and the seller or the user, or you provide the above-mentioned clauses to the seller or the user directly. 4 Forbiddance You are granted some rights as clarified in the above Section 1 and Section 2, but you should agree not to : d) Use, modify , insert or transfer the software or any other products of ZKSoftware Inc. (including, but not limited to, test modules), except authorization specifically stated in this agreement; e) Sell, transfer license, and lease, transfer, mortgage or share your rights to others under this agreement; f) Modify, disassemble, decompile, reverse-engine, delete or add original codes of this software or codes intended to deduce this software; g) Put this software on a server, so that others are able to obtain it from a public network; h) Use the backup of this software or documentation copies (or let others have this kind of copies) for any purpose, except replacing the original copy which has been broken or has malfunctions. If you are a member of the European Union, this agreement will not influence your legitimate rights specified in the Manual on Computer Software Protection authorized by EC Committee. If you are looking for any information
46 ZKSoftware Inc. http://www.zksoftware.com
ZKSoftware Inc.
related to this guide, you may contact ZKSoftware Inc. 5 Limited Guaranty ZKSoftware Inc. makes a twelve-month guaranty (guaranty period), that: i) When the software is delivered to you, and if your computers hardware environment and the operation system are matched with the designed ones, the software will work in the manner as described in Development Manual. j) Magnetic media which solidify this software do not have remarkable flaws in terms of the material and the technique. k) Biokey Doggle dose not have remarkable flaws in terms of the material and the technique. 6 Non-guaranty ZKSoftware Inc. dose not guarantee that all its products will meet your requirements, and dose not guarantee that its operation will not be interrupted or no error will take place. To the degree within the range of laws, in particular ZKSoftware Inc. dose not undertake any special guaranty not set out herein, and any connotative guaranty. The guaranty include, but are not limited to, connotative guaranty related with sales and for any specific purpose. 7 Preparation Limit If the guaranty is violated, the only responsibility ZKSoftware Inc. should take is to replace or repair the product. If any product or its parts do not meet the above-mentioned limited guaranty requirements, free service will be provided. Repair Guaranty Claim Form must be filled in during the guaranty period, or persuasive proof, in addition to the Repair Guaranty Claim Form should be
ZKSoftware Inc. http://www.zksoftware.com 47
ZKSoftware Inc.
submitted to ZKSoftware Inc. on the day when the malfunction is discovered. All the products should be returned to ZKSoftware Inc. from the place where the products were purchased, and the returning side should be responsible for the transportation and guaranty fees. The product and its parts should be returned together with your receipt copies. 8 Removing indirect damages The both parties admit of the inherent intricacy of this software and the products of ZKSoftware Inc., and acknowledge that the software and the products can not be perfect without any false. ZKSoftware Inc. will not be responsible for any cost or damage (including indirect and specific damages) brought to you, your seller, your software users, or the third party, caused by any behavior and conduct whether it is violation and negligence or not according this agreement or any other specifications. The cost and damages include, but are not limited to: any commercial cost, beneficial damage, the damage or loss of data, or the loss of files, due to the usage of this software, or products of ZKSoftware, or your software programs, even ZKSoftware Inc. has been recommended about the possibility of the damages. 9 Responsibility Limit Under certain circumstances, in spite of the terms and conditions set out in this agreement, if ZKSoftware Inc. is still responsible for the damage caused by any malfunction and disqualification of the product, then the total responsibility fee for each product which has problems, will not surpass the fee paid by you to ZKSoftware Inc. for the purchase of the product. 10 No other guaranty
48
ZKSoftware Inc.
http://www.zksoftware.com
ZKSoftware Inc.
Except what has been specified herein, ZKSoftware Inc. will not provide any other specific or connotative guaranty, and will not be responsible for any products described in the prelude of this agreement, including their quality, performance, and the flexibility for a specific purpose. 11 Termination
If you can not abide by the terms and conditions of this agreement, your license and this agreement will be terminated. In this case, according to this agreement of ZKSoftware Inc.: l) The license authorized by this agreement to you will be invalid, and you can not continue to use (including transferring the license) the licensed software and any other licensed products. m) You should immediately return to ZKSoftware Inc. any tangible properties and their copies which represent ZKSoftware Inc.s intelligence property, or you should delete the electronic forms of this type of information. In spite of the termination of this agreement, Clause 1456789 10 and 11will preserve. Domination Law and Jurisdiction Right This agreement is under the supervision of the laws of the Peoples Republic of China, and only Chinese courts possess the jurisdiction right for any conflict and discord aside from this agreement. 12
ZKSoftware Inc.
http://www.zksoftware.com
49
ZKSoftware Inc.
ZKSoftware Inc.
3 Windows 95/98/NT4.0/2000/XP or any other environments 4 any application programs you are using 5 Detailed description about the problem You are welcomed to log on our website: www.zksoftware.comvisit our technical forum and submit your questions and suggestion. We will try to provide you with satisfactory replies in the soonest manner.
ZKSoftware Inc.
http://www.zksoftware.com
51
ZKSoftware Inc.
10Contact Us
ZKSoftware (Beijing) Sales and Service Center
Address: Room 1008, Pacific International Building, No. 106, Zhichun Road, Zhongguancun, Beijing Zip C ode: 100086 Telephone: 0086 010-51518010515180115151801251518013 Fax: 0086 010-51518015