Documente Academic
Documente Profesional
Documente Cultură
0 Manual
ZKFinger SDKCopyrightDeclaration
ZKFingerSDKandthesoftwaredevelopmentlicenseagreementdefineyour rightrelatedtothecopyrightofthisdevelopmentkitandifyoudontagreewith the following agreement, please return the product to the place you bought it immediately. I. UsageLicense You can only copy one software package related to this SDKincluding Setup.exeLicense.rtfBiokey.ocxManual.doc andpertinentsamplesto one single PCand without written license from Zhongkong Automation System Inc., Ltd, content of the software package related to this SDK and this manualcannotbecopied orreprintedinits originalform oranyother formsbymeansofpaper,electronicsoranyothers.
II. TrademarkRegistration ZKSoftware., ZKFinger, and ZKSoftware are registered trademarks owned by Zhongkong AutomationSystem Inc., Ltd, protected bylaws ofPeoples Republic of China, and any illegitimate usage is forbidden. Microsoft is a registered trademark of Microsoft Corporation, and any other products and company names mentioned in this manual can be trademarks of respective owners.
ZKSoftwareInc.
http://www.zksoftware.com
ZKSoftware Inc.
ZKSoftwareInc.
http://www.zksoftware.com
UserRegistration
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: (____) ____________
ZKSoftwareInc. http://www.zksoftware.com
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?
[ [ [ [
] ] ] ]
ZKSoftwareInc.
http://www.zksoftware.com
TableofContents
1.ZKFingerAlgorithmDescription .....................................................................1 2.ZKFingerSDKArchitect...................................................................................3 3.SoftwareInstallation..........................................................................................5
3.1DiscFilesandDirectory ............................................................................................... 5 3.2SoftwareInstallation .................................................................................................... 6
4.ActiveXControlReference................................................................................7
4.1Property....................................................................................................................... 7 4.1.1ActiveasBoolean ................................................................................................. 7 4.1.2EngineValidasBoolean......................................................................................... 7 4.1.3EnrollIndexAsLong ............................................................................................. 7 4.1.4EnrollCountAsLong ............................................................................................ 8 4.1.5FPEngineVersionASString................................................................................... 8 4.1.6ImageHeightASinteger ........................................................................................ 8 4.1.7ImageWidthASinteger ......................................................................................... 8 4.1.8IsRegisterAsBoolean ........................................................................................... 8 4.1.9OneToOneThresholdAsBoolean........................................................................... 8 4.1.10RegTplFileNameAsString.................................................................................. 9 4.1.11SensorCountAsLong.......................................................................................... 9 4.1.12SensorIndexASLong.......................................................................................... 9 4.1.13SensorSNAsString............................................................................................. 9 4.1.14TemplateLenAsLong ......................................................................................... 9 4.1.15ThresholdAsLong.............................................................................................. 9 4.1.16VerTplFileNameAsString..................................................................................10 4.2Method .......................................................................................................................10 4.2.1TheMethodsfortheControlInterfacesof1:1and1:N ..........................................10 ZKSoftwareInc. http://www.zksoftware.com
4.2.1SubBeginEnroll() .............................................................................10 4.2.2SubCancelEnroll()............................................................................10 4.2.3FunctionDongleIsExistAsBoolean .................................................10 4.2.4FunctionDongleSeed(Byvallp2AsLong,Byvalp1,p2,p3,p4As Integer)AsBoolean....................................................................................10 4.2.5FunctionDongleUserIDAsLong .....................................................11 4.2.6FunctionDongleMemRead(Byvalp1,p2AsInteger,buf)As Boolean ......................................................................................................11 4.2.7FunctionDongleMemWrite(Byvalp1,p2AsInteger,buf)As Boolean ......................................................................................................11 4.2.8FunctionGetTemplate() ....................................................................11 4.2.9FunctionGetFingerImage(ByvalAFingerImage)AsBoolean..........11 4.2.10FunctionInitEngine()AsLong .......................................................12 4.2.11FunctionVerFinger(byvalregTemplate,verTemplate,AdoLearning AsBoolean,byvalAregFeatureChangedAsBoolean)AsBoolean ...........12 4.2.12FunctionVerFingerFromFile(regTemplateFileAsString, verTemplateFileAsStringAdoLearningAsBoolean,byval AregFeatureChangedAsBoolean)AsBoolean .........................................12 4.2.13FunctionVerRegFingerFile(RegTemplateFileAsString, verTemplateAdoLearningAsBoolean,byvalAregFeatureChangedAs Boolean)AsBoolean..................................................................................13 4.2.14SubPrintImageAt(HDCAsOLE_HANDLE,XAsLong,YAs Long,aWidthAsLong,aHeightAsLong).................................................13 4.2.15SubPrintImageEllipseAt(HDCAsOLE_HANDLE,XAsLong,Y AsLong,aWidthAsLong,aHeightAsLong,bkColorAsOLE_COLOR)14 4.2.16SubSaveBitmap(FileNameAsString)............................................14 4.2.17SubSaveJPG(FileNameAsString).................................................14 4.2.18FunctionSaveTemplate(FileNameAsString,Template)AsBoolean14 4.2.19functionEncodeTemplate(ASour,varADestAsString)AsBoolean14 4.2.20functionDecodeTemplate(constASourAsString,ADest)As
ZKSoftwareInc. http://www.zksoftware.com
Boolean ......................................................................................................14 4.2.21functionEncodeTemplate1(ASour)AsString.................................15 4.2.22functionDecodeTemplate1(constASourAsString)AsVariant......15 4.2.23SubBeginCapture().........................................................................15 4.2.24SubEndEngine() .............................................................................15 4.2.25functionVerFingerFromStr(regTemplateStrAsString, verTemplateStrAsString,AdoLearningAsBoolean,byval AregFeatureChangedAsBoolean)AsBoolean .........................................15 4.2.26functionGetTemplateAsString()AsString .....................................16 4.2.27functionControlSensor(ACodeAsLongAValueAsLong)AsLong16
4.2.2Methodfor1:NControlInterface .........................................................................16
4.2.28FunctionAddRegTemplateToFPCacheDB(fpcHandleAsLong, FPIDAsLong,pRegTemplate)AsLong ...................................................16 4.2.29FunctionAddRegTemplateFileToFPCacheDB(fpcHandleAsLong, FPIDAsLong,pRegTemplateFileAsString)AsLong .............................16 4.2.30FunctionCreateFPCacheDBAsLong.............................................17 4.2.31SubFlushFPImages() .....................................................................17 4.2.32SubFreeFPCacheDB(fpcHandleAsLong)....................................17 4.2.33FunctionIdentificationFromFileInFPCacheDB(fpcHandleAsLong, pVerTemplateFileAsString,ByvalScoreAsLong,Byval ProcessedFPNumberAsLong)AsLong....................................................18 4.2.34FunctionIdentificationInFPCacheDB(fpcHandleAsLong, pVerTemplate,ByvalScoreAsLong,ByvalProcessedFPNumberAsLong) AsLong......................................................................................................18 4.2.35FunctionIsOneToOneTemplate(ATemplate)AsBoolean ..............19 4.2.36FunctionModifyTemplate(byvalAtemplate,AOneToOneAs Boolean)AsBoolean..................................................................................19 4.2.37FunctionRemoveRegTemplateFromFPCacheDB(fpcHandleAs Long,FPIDAsLong)AsLong ..................................................................20 4.2.38SubCancelCapture() .......................................................................20
ZKSoftwareInc. http://www.zksoftware.com
4.2.39FunctionAddRegTemplateStrToFPCacheDB(fpcHandleAsLong, FPIDAsLong,ARegTemplateStr AsString)AsLong ..............................20 4.2.40FunctionIdentificationFromStrInFPCacheDB(fpcHandleAsLong, AVerTemplateStrAsString,ByvalScoreAsLong,Byval ProcessedFPNumberAsLong)AsLong....................................................20 4.2.41SubSetAutoIdentifyPara(AutoIndentifyAsBoolean,fpcHandleAs Long,ScoreAsLong) ................................................................................21
4.2.3Methodsfor1:1ControlInterface.........................................................................21
4.2.46FunctionCreateFPCacheDBExAsInteger .....................................23 4.2.47SubFreeFPCacheDBEx(fpcHandleAsLong) ................................23 4.2.48FunctionAddRegTemplateStrToFPCacheDBEx(fpcHandleAs Integer,FPIDAsInteger,ARegTemplateStrAsStirng, ARegTemplate10StrAsString)AsLong ...................................................23 4.2.49FunctionAddRegTemplateToFPCacheDBEx(fpcHandleAsInteger, FPIDAsInteger,pRegTemplate,pRegTemplate10)AsLong ...................23 4.2.50FunctionAddRegTemplateFileToFPCacheDBEx(fpcHandleAs Integer,FPIDAsInteger,pRegTemplateFile AsString, pRegTemplateFile10AsString)AsLong...................................................23
ZKSoftwareInc. http://www.zksoftware.com
9.SoftwareAftersaleService..............................................................................49 10.ContactUs.......................................................................................................51
ZKSoftwareInc.
http://www.zksoftware.com
1. ZKFinger AlgorithmDescription
ZKFingeralgorithmisakindofquickandaccurate1:1 and1:Nfingerprint identificationalgorithm,whichistotallyopentosoftwaredevelopersandsystem integrators. If you use ZKFinger to identify fingerprints (20006000 pieces of fingerprints)youcancompletetheidentificationtaskeasilywithin15seconds (thefollowingtestsrequirePentiumIII900MHz+128MBEMSmemory)without categorizing fingerprints by names, PIN or any others in advance. ZKFinger algorithmhasthefollowingfeatures: 1 ZKFingersoftwaredevelopment packagecanbequicklyintegrated to customers systems, and can support any scanner device and fingerprint Sensor (Image quality >=300DPI) through open image processinterface. By strainer mirrors and adequate valve values which are selfadaptive orcanbeeasily matched, ZKFingeralgorithmisable toweakennoise,increasethecontrastdegreeofthebridgeandvale, andeventocapturewholeorpartialfeaturepointsfromfingerprint ofbadquality(fingerprintwhichisdirty,toodryorwet,broken,or withwounds,scarsandmarks). ZKFinger algorithm identification supports the translation of fingerprints (>=35%of the fingerprint size) and circumrotation for 360degree.Specialtechnologyisusedtorealizespeedyverification when the fingerprint is translated or rotated for 360 degree (the averagespeedis3000pieces/second).Evenwhenthefingerprinthas few feature points (<=10 normally fingerprints feature points >=15)thisfunctioncanalsobeachieved.
ZKSoftwareInc. http://www.zksoftware.com 1
ZKFinger algorithm does not require global feature points (core point,triangularpoint),andidentificationcanbecompletedbylocal featurepoints. Throughclassificationalgorithm(fingerprintsareclassifiedintofive categories:archcategory,leftloopcategory,rightloopcategory,tine arch category, and vortex category), ZKFinger use global feature ordering in advance, which accelerates the process of fingerprint verificationremarkably. ZKFingeralgorithmisquiteconcise:dataonlyneed350Kmemory, sothattheycaneasilybeimportedintoembeddedsystems.
ZKFinger was used to test 2000 pieces of fingerprints collected from four Sensors(YLC,DFR200,U.are.U,andAuthentec),everypieceoffingerprintwas verified with the other ones, and verification and test were carried out for altogether 4,000,000 times, and eventually the following test results were achieved: Templatesize Rotation FAR FRR Registrationtime Averageverificationspeed Imagequality 310or1152Byte 0 360degree <=0.001% <=2.0% 0.5second 2500pieces/second >=300DPI
ZKSoftwareInc.
http://www.zksoftware.com
2. ZKFinger SDKArchitect
ZKFinger SDK 4.0 Pro (Software Development Kit) mainly exists in the form of ActiveX, and users can develop application programs relative to fingerprint sensors by means of varied development languages (such as VC++,C++Builder,Delphi,VB,VisualFoxPro,PBandsoon). FilesIncluded: Operation System Files Setup.exe WindowsXP Windows2003 WindowsVista Windows7 License.rtf Development Agreement \Sdk\Manual.doc Program Manual \Sdk\One\Biokey.ocx ZKFinger Control \Sdk\Many\Biokey.ocx ZKFinger Control 1:N ActiveX 1:1 ActiveX Development License Description Installation program for
fingerprintSensordriverand Doggledriver
ZKSoftwareInc.
http://www.zksoftware.com
SDKArchitecture:
ApplicationProgram
ActiveXControl OCX
DeviceDriver
Otherfingerprint Readers
FingerprintSensor ZKorURU2000Sensor
FingerprintImage
ZKSoftwareInc.
http://www.zksoftware.com
3. SoftwareInstallation
3.1DiscFilesandDirectory
OpentheZKFingerSDKdisc,andinformationaboutthedirectoryand file
willappearasthefollowing:
Setup.exeItincludestheinstallationprogramforfingerprintReaderdriver andDoggledriver. License.rtf:DevelopmentLicenseAgreement. Open the SDK directory, and the following directory and file information willbeshown:
Manual.doc:SDKInstructionManual Many:1:Nidentificationdevelopment One:1:1identificationdevelopment. Open the one or many directory, the following information about the directoryandfileswillbeshown: Samples:samplesforvariousdevelopmentlanguages Biokey.ocxControllibraryfiles.
ZKSoftwareInc.
http://www.zksoftware.com
3.2SoftwareInstallation
Before installing ZKFinger SDK, please make sure that your operation systemandtheconfigurationofyourcomputermeettherequirementstorun thesoftware. Before the installation, if your computer has been connected with a fingerprint Reader, youd better pull it out. 1Puttheinstallationdiscinthedriver,andthecomputerwillautomatically run the installation software. Click Next button, and you can enter the followingoperationsteps: PressInstallationbutton,andbegintoinstallFingerprintdriverandDoggle driver. 2 Copy the following file to Windows system directory (c:\windows\system) Biokey.ocx ControlBaseFile 3RegistercontrolBiokey.ocx c:\windows\system\regsvr32.exe c:\windows\system\Biokey.ocx Note: 1 The installation program only installs fingerprint Reader driver and Doggledriver,andotherdevelopmentfilesshouldbecopiedbyusersto respectivedirectoriesbyhand
ZKSoftwareInc.
http://www.zksoftware.com
4. ActiveX ControlReference
ZKFingerSDK4.0Proisdividedintotwocontrols:1:1 and1:N.Forthese two, their interfaces are basically of the same property and method, and the methodsforthetwointerfacesonlydifferintheverificationrelatedto1:N.Inour further description,wewilltryto displaythetwocontrolscomprehensively,and theirdifferenceswillbelabeledandilluminated. VB language expression is used here, and fingerprint template Variant variableshowasonedimensionbytearrays.
4.1.2EngineValidasBoolean
Readonly It indicates whether the fingerprint identification system is performing normallyornot.IfthefunctioninitEnginehasbeenused,effectiveresultwillbe returned.
4.1.3 EnrollIndexAsLong
Readonly The sampling order number at fingerprint registration, that is, the effective timesforsuccessfulfingerprintregistrationatpresent.
ZKSoftwareInc. http://www.zksoftware.com 7
4.1.4 EnrollCountAsLong
The times for sampling fingerprints at registration, whose value ranges is 14.
4.1.6 ImageHeightASinteger
Readonly Itindicatestheheightofthefingerprintimage.
4.1.7 ImageWidthASinteger
Readonly Itindicatesthewidthofthefingerprintimage.
4.1.8IsRegisterAsBoolean
Readonly Itindicateswhetherafingerprintisbeingregisteredornot.
4.1.9 OneToOneThresholdAsBoolean
Set the identification threshold value (1100) for ZKFinger lowspeed fingerprintverificationonetoone,andthedefaultvalueis10.Thelargerofthe value,thelowertheFARandthehighertheFRRare. Note:1:1controldoesnthavethisproperty.
ZKSoftwareInc.
http://www.zksoftware.com
4.1.11SensorCountAsLong
Readonly It indicates the number of fingerprint Readers which are connected to the computer,andifEngineValidisinvalid,0isreturned.
4.1.12SensorIndex ASLong
Select the order number of the fingerprint head when multiple fingerprint Readers are connected. The serial number starts from 0, and if the number is smallerthan0,thefingerprintReaderwillnotwork.
4.1.13SensorSNAsString
ItindicatestheserialnumberforhardwareofthefingerprintReader.
4.1.14TemplateLenAsLong
Readonly Itindicatesthebytelengthofthefingerprintregistrationtemplate. Note:Thetemplatelengthis1152bytesfor1:N,andthetemplatelengthis 310bytesfor1:1.
4.1.15 ThresholdAsLong
Set the verification and identification threshold value (1100) for the fingerprintidentificationsystem,andthedefaultvalueis10.Thelargerthevalue, thelowertheFARandthehighertheFRRare.
ZKSoftwareInc. http://www.zksoftware.com 9
4.2.5Function DongleUserIDAsLong Read User ID in Doggle, and User ID will not repeat. Save it in specific locationwithinDoggle. This function has been canceled, here in order to compatible with before,wekeepupthisfunction. 4.2.6Function DongleMemRead(Byvalp1,p2AsInteger,buf)AsBoolean Read the p2 bytes started from p1 located in Doggle memory to Variant variable buf (onedimension byte array). There are altogether 24 bytes in the memory,locatedfrom0to23. Thisfunctionhasbeencanceled,hereinordertocompatiblewithbefore, wekeepupthisfunction. 4.2.7Function DongleMemWrite(Byvalp1,p2AsInteger,buf)AsBoolean WriteVariantvariablebuf(onedimensionbytearray)tothep2bytesstarted fromp1locatedinDogglememory.Therearealtogether24bytesinthememory, locatedfrom0to23. Thisfunctionhasbeencanceled,hereinordertocompatiblewithbefore, wekeepupthisfunction. 4.2.8FunctionGetTemplate() Getthefingerprinttemplate,whichisobtainedmostrecently. 4.2.9FunctionGetFingerImage(ByvalAFingerImage) AsBoolean Getthefingerprintimage(BMPformat),whichisobtainedmostrecently.
ZKSoftwareInc.
http://www.zksoftware.com
11
4.2.10FunctionInitEngine()AsLong Initializethefingerprintidentificationsystem.PropertysuchasSensorCount, SensorSN, EngineValid, ImageHeight and ImageWidth will not return accurate resultsonlyafterthisfunctionhasbeencalled.Returnvalues: 0Initializationsucceeded. 1 Theloadingofthefingerprintidentificationdriverfailed. 2FingerprintSensorhasnotbeenconnected. 3 The fingerprint Reader appointed by the property SensorIndex dose not exist(Note:SetthepropertySensorIndexbeforecallingthefunction). MethodEndEnginecanbeusedtoreleasethefingerprintdevice system. 4.2.11FunctionVerFinger(byvalregTemplate,verTemplate,AdoLearningAs Boolean,byval AregFeatureChanged AsBoolean)AsBoolean Compare whether the feature templates for two pieces of fingerprints are matched or not. Here, regTemplate represents fingerprint registration feature templates,verTemplateexpressesfingerprintverificationfeaturetemplateswhich are collected on the spot, AdoLearning denotes whether to carry out fingerprint feature template learning updating or not, and AregFeatureChanged shows whethertheregistrationtemplateregTemplatehasbeenchangedornot.Truewill be returned when the two pieces of fingerprints are matched, and False will be returnedwhennotmatched. Explanation: Thefingerprintfeaturewillvarytocertainextentwiththetime,usuallywhich willnotposeaninfluenceontheverificationoffingerprints.Whilebyfingerpirnt feature template learning updating, the system can obtain an integrated new template,soastolowertheFRR. 4.2.12 Function VerFingerFromFile(regTemplateFile As String, verTemplateFile As String AdoLearning As Boolean, byval
12 ZKSoftwareInc. http://www.zksoftware.com
AregFeatureChanged AsBoolean)AsBoolean Compare whether the feature templates for two pieces of fingerprints are matched or not. Here, regTemplate represents fingerprint registration feature templates,verTemplateexpressesfingerprintverificationfeaturetemplateswhich are collected on the spot, AdoLearning denotes whether to carry out fingerprint feature template learning updating or not, and AregFeatureChanged shows whethertheregistrationtemplateregTemplatehasbeenchangedornot.Truewill be returned when the two pieces of fingerprints are matched, and False will be returnedwhennotmatched. 4.2.13Function VerRegFingerFile(RegTemplateFileAsString,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 previous fingerprint registration feature templates in the file specified by FileName, verTemplate expresses fingerprint feature templates which are collected on the spot, AdoLearning denoteswhethertocarryoutfingerprintfeaturetemplatelearningupdatingornot, and AregFeatureChanged shows whether the registration template regTemplate hasbeenchangedornot.Truewillbereturnedwhenthetwopiecesoffingerprints arematched,andFalsewillbereturnedwhennotmatched. 4.2.14Sub PrintImageAt(HDC AsOLE_HANDLE,X AsLong,Y AsLong, aWidthAsLong,aHeightAsLong) At the location specified by (x,y), display the fingerprint image in accordancewiththesizespecifiedby(aWidth,aHeight).HDCistheHDCforthe windowinwhichthefingerprintwillbeshown.
ZKSoftwareInc.
http://www.zksoftware.com
13
4.2.15Sub PrintImageEllipseAt(HDCAsOLE_HANDLE,XAsLong,Y As Long,aWidthAsLong,aHeightAsLong,bkColorAsOLE_COLOR) At the location specified by (x,y), display the fingerprint image in accordancewiththesizespecifiedby(aWidth,aHeight).HDCistheHDCforthe window in which the fingerprint will be shown. Here the fingerprint image is surroundedbyanellipse. 4.2.16SubSaveBitmap(FileNameAsString) SavethelastfingerprintimagetothebitmapfilespecifiedbyFileName. 4.2.17SubSaveJPG(FileNameAsString) Savethelastfingerprintimage astheJpegfile thatspecifiedbyFileName. 4.2.18FunctionSaveTemplate(FileNameAsString, Template)AsBoolean SavethefeaturetemplatefortheTemplatefingerprinttothefilespecifiedby FileName. 4.2.19functionEncodeTemplate(ASour,varADest AsString)AsBoolean Transfer the Variant template Asour used by the control into the template stringAdest,whichisBASE64formatted. 4.2.20functionDecodeTemplate(constASourAsString,ADest)AsBoolean Transfer the template string Asour which is BASE64 formatted into the VarianttypedtemplateAsourusedbythecontrol. The abovementioned two methods are mainly used for saving database of templates. Varianttyped templates are saved in the manner of binaryformatted arrays, which are quite difficult for languages such as PB, VB, etc. Method
14 ZKSoftwareInc. http://www.zksoftware.com
EncodeTemplate can transfer Varianttyped codes into strings, and method DecodeTemplatecantransferstringtypedcodesintocodesofVarianttyped.Here, we should pay attention that the template length will be increased after the templatevariableBASE64codehasbeentransferredintothestring. 4.2.21functionEncodeTemplate1(ASour)AsString Transfer the Variant template Asour used by the control into the template string,whichisBASE64formatted. 4.2.22functionDecodeTemplate1(constASourAsString)AsVariant Transfer the template string Asour which is BASE64 formatted into the Varianttypedtemplateusedbythecontrol. 4.2.23SubBeginCapture() Set the current fingerprint device to begin to capture images, and method CancelCapturecanbeusedtoforbidthecurrentdevicetocaptureimages. 4.2.24SubEndEngine() ReleasethefingerprintdeviceinitializedbymethodInitEngine,andmethod InitEngine canbeutilizedtoreinitializefingerprintdevice. 4.2.25functionVerFingerFromStr(regTemplateStrAsString,verTemplateStr AsString,AdoLearningAsBoolean,byvalAregFeatureChangedAsBoolean) AsBoolean Compare whether the feature templates for two pieces of fingerprints are matched or not. Here, regTemplateStr(BASE64 formatted string) represents fingerprint registration feature templates, verTemplateStr(BASE64 formatted string)expressesfingerprintverificationfeaturetemplateswhicharecollectedon
ZKSoftwareInc. http://www.zksoftware.com 15
the spot, AdoLearning denotes whether to carry out fingerprint feature template learningupdatingornot,andAregFeatureChangedshowswhethertheregistration 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.26functionGetTemplateAsString() AsString Get the fingerprint Verify or Register template, which is obtained most recently. It may be called on OnCapture OnEnroll, OnCaptureToFile, OnEnrollToFileevent.ThereturnresultisBASE64formattedtemplatestring. 4.2.27functionControlSensor(ACode AsLongAValue AsLong)AsLong IfACode=11,controlthegreenlight,ifits12,controltheredlight,ifits13, controlthebeep. IfAValue=1,lightson,ifits0,lightsoff.
fpcHandleandFPID, which must be equal to or larger than 0, is the label for addingtheregistrationtemplate.Ifthereturnvalueis1,itindicatesasuccess,and 0indicatesafailure. 4.2.30Function CreateFPCacheDBAsLong Create the fingerprint identification highspeed buffer. As for 1:N identification, this function must be first called so as to obtain the fingerprint identificationbufferhandle. Explanation: ZKFinger1:1lowspeedverificationspeedisratherslow(about30msforPII 233), so fingerprints of 1:1 genre added to the buffer by calling the function AddRegTemplateToFPCache can not be too many otherwise, the verification speed will be impacted. By IsOneToOneTemplate, we can judge whether the fingerprintisof 1:1typeornot. At the same time multiple buffers can be created for group comparison and others. 4.2.31SubFlushFPImages() Deletebufferimagesinthecurrentfingerprintdevice. 4.2.32SubFreeFPCacheDB(fpcHandleAsLong) Release the fingerprint identification highspeed buffer. FpcHandle is the fingerprint identification buffer handle obtained by calling the function CreateFPCacheDB.
ZKSoftwareInc.
http://www.zksoftware.com
17
4.2.33 Function IdentificationFromFileInFPCacheDB (fpcHandle As Long, pVerTemplateFile As String, Byval Score As Long, Byval ProcessedFPNumber AsLong)AsLong Compare all the registration templates in the fingerprint identification highspeedbufferfpcHandlewiththe fingerprint verificationtemplateinthe file pVerTemplateFile.ScorerepresentsthehighestscoreamongProcessedFPNumber times of verification, and ProcessedFPNumber shows the times of verification. Thefingerprintlabelwillbereturnediftheidentificationissuccessful,and1is returnediffailed. Note: During the process of identification, if the verification score is equal to or larger than the property Threshold, then it is considered that the verification is successful.In thiscase, no further verification willbecarriedout fortherest 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 templatesandallthefingerprintidentificationtemplateslocatedinthefingerprint identification highspeed buffer, but meanwhile the highest score for the verificationisequaltoorlargerthanScore,thenitisviewedthattheverification is matched successfully. In this case, this function will return the label of the fingerprintregistrationtemplatewhich getsthehighestverificationscore,whose recommendedvalueis9. 4.2.34 Function IdentificationInFPCacheDB (fpcHandle As Long, pVerTemplate, ByvalScore AsLong,ByvalProcessedFPNumber AsLong)As Long Compare all the registration templates in the fingerprint identification highspeed buffer fpcHandle with the fingerprint verification template
18 ZKSoftwareInc. http://www.zksoftware.com
pVerTemplate. Score represents the highest score among ProcessedFPNumber times of verification, and ProcessedFPNumber shows the times of verification. Thefingerprintlabelwillbereturnediftheidentificationissuccessful,and1is returnediffailed. Note: During the process of identification, if the verification score is equal to or larger than the property Threshold, then it is considered that the verification is successful.In thiscase, no further verification willbecarriedout fortherest 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 templatesandallthefingerprintidentificationtemplateslocatedinthefingerprint identification highspeed buffer, but meanwhile the highest score for the verificationisequaltoorlargerthanScore,thenitisviewedthattheverification is matched successfully. In this case, this function will return the label of the fingerprintregistrationtemplatewhich getsthehighestverificationscore,whose recommendedvalueis9. 4.2.35FunctionIsOneToOneTemplate(ATemplate)AsBoolean Judge the current fingerprint feature templateAtemplate is a ZKFinger 1:1 lowspeedverificationfeaturetemplate. 4.2.36FunctionModifyTemplate(byvalAtemplate,AOneToOneAsBoolean) AsBoolean AccordingAoneToOnemodifythefingerprintfeaturetemplateAtemplateto a ZKFinger 1:1 lowspeed verification feature template or a highspeed verificationfeaturetemplate.
ZKSoftwareInc.
http://www.zksoftware.com
19
4.2.37FunctionRemoveRegTemplateFromFPCacheDB(fpcHandleAsLong, FPIDAsLong) AsLong DeletethefingerprintregistrationtemplatewhichislabeledasFPIDlocated inthefingerprintidentificationhighspeedbufferfpcHandle.Ifthereturnvalueis 1,itindicatesasuccess,and0representsafailure. 4.2.38SubCancelCapture() Forbid the current fingerprint device to capture images, and the method BeginCapture canbeusedforthefingerprintdevicetobegintocaptureimages. 4.2.39 Function AddRegTemplateStrToFPCacheDB(fpcHandle As Long, FPID AsLong, ARegTemplateStrAsString)AsLong Addtheprevious fingerprintregistration featuretemplateARegTemplateStr which is BASE64 code string to the fingerprint identification highspeed buffer fpcHandleandFPID, which must be equal to or larger than 0, is the label for addingtheregistrationtemplate.Ifthereturnvalueis1,itindicatesasuccess,and 0indicatesafailure. 4.2.40 Function IdentificationFromStrInFPCacheDB (fpcHandle As Long, AVerTemplateStr As String, Byval Score As Long, Byval ProcessedFPNumber AsLong)AsLong Compare all the registration templates in the fingerprint identification highspeed buffer fpcHandle with the verification template AverTemplateStr, whichisBASE64codeformattedstring.Scorerepresentsthehighestscoreamong ProcessedFPNumber times of verification, and ProcessedFPNumber shows the timesofverification.Thefingerprintlabelwillbereturnediftheidentificationis successful,and 1isreturnediffailed. Note:
20 ZKSoftwareInc. http://www.zksoftware.com
During the process of identification, if the verification score is equal to or larger than the property Threshold, then it is considered that the verification is successful.In thiscase, no further verification willbecarriedout fortherest 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 templatesandallthefingerprintidentificationtemplateslocatedinthefingerprint identification highspeed buffer, but meanwhile the highest score for the verificationisequaltoorlargerthanScore,thenitisviewedthattheverification is matched successfully. In this case, this function will return the label of the fingerprintregistrationtemplatewhich getsthehighestverificationscore,whose recommendedvalueis9. 4.2.41 Sub SetAutoIdentifyPara(AutoIndentify As Boolean, fpcHandle As Long,Score AsLong) Set the Internal Recognition Style AutoIndentify, fingerprint identification highspeed buffer fpcHandle and the SCORE which the same as the parameter Score of IdentificationFromInFPCacheDBmethod.ReferOnCaptureevent.
image. 4.2.43FunctionAddImageFile(FileNameAsString,DPIAsLong)AsBoolean Usethefingerprintimagefile(supportingsuchformatsasBMP,TIFF,JPG, GIF) specified by FileName for registration or verification. DPI defines the resolutionoftheimage.
4.2.4MethodsforExternalImageFileInterface
4.2.44FunctionAddBitmap(BitmapHandleAsOLE_HANDLE,ValidRectX1 AsLong,ValidRectY1AsLong,ValidRectX2AsLong,ValidRectY2AsLong, DPIAsLong)AsBoolean Enroll or verify the user with bitmap specified by BitmapHandle. The parameters ValidRectX1, ValidRectY1, ValidRectX2 and ValidRectY2 specify theeffectiveareaoftheimage.Ifthespecifiedareaisinvalid,thewholeimageis effective.DPIspecifiestheresolutionoftheimage. 4.2.45FunctionAddImageFile(FileNameAsString,DPIAsLong)AsBoolean Enroll or verify the user with fingerprint image (supports BMP or JPG format)specifiedby FileName.DPIspecifiestheresolutionoftheimage. Before using these two functions, if the image is used for fingerprint enrollment, use BeginEnroll first and then set EnrollCount. Otherwise, if the imageisused for verification, useBeginCapturefirstandthenset AddImageFile or AddBitmap,andthesystemwilltriggerOnEnrollorOnCapture event. The two external image interfaces are not support in ZKFinger 5.0 Lite Version.
22
ZKSoftwareInc.
http://www.zksoftware.com
4.2.5 MethodsforExternalInterface
4.2.46Function CreateFPCacheDBEx AsInteger The functionissimilarto CreateFPCacheDB,exceptthatitcancreateboth 9.0and10.0fingerprintidentificationhighspeed cache atthesametime. 4.2.47SubFreeFPCacheDBEx(fpcHandle AsLong) ThefunctionissimilartoFreeFPCacheDB,exceptthatitcancreateboth9.0 and10.0fingerprintidentificationhighspeedcacheatthesametime. 4.2.48FunctionAddRegTemplateStrToFPCacheDBEx(fpcHandleAsInteger, FPIDAsInteger, ARegTemplateStr AsStirng,ARegTemplate10Str AsString) AsLong The functionissimilartoAddRegTemplateStrToFPCacheDB,exceptthatit can create both 9.0 and 10.0 fingerprint identification high speed cache at the sametime. 4.2.49 Function AddRegTemplateToFPCacheDBEx (fpcHandle As Integer, FPID AsInteger,pRegTemplate,pRegTemplate10) AsLong ThefunctionissimilartoAddRegTemplateStrToFPCacheDBEx,exceptthat ituses Variantfingerprinttemplate. 4.2.50Function AddRegTemplateFileToFPCacheDBEx(fpcHandleAsInteger, FPIDAsInteger,pRegTemplateFileAsString,pRegTemplateFile10AsString) AsLong ThefunctionissimilartoAddRegTemplateStrToFPCacheDBEx,exceptthat itwillupload thefingerprinttemplatefromthefile.
ZKSoftwareInc. http://www.zksoftware.com 23
4.2.51 Function RemoveRegTemplateFromFPCacheDBEx(fpcHandle As Long,FPIDAsLong) AsLong The function is similar to RemoveRegTemplateFromFPCacheDB, except thatitwillclearboth9.0and10.0fingerprinttemplate atthesametime. 4.2.52FunctionGetTemplateEx(AFPEngineVersion AsString) As Variant The function is similar to GetTemplate, except that it can import AFPEngineVersionparametertoget9.0or10.0fingerprinttemplate. IfAFPEngineVersionis9,getthe9.0fingerprinttemplate.Ifits10,getthe 10.0fingerprinttemplate. 4.2.53 Function GetTemplateAsStringEx(AFPEngineVersion As String) As String The function is similar to GetTemplateEx, except that the return template string isconvertedto BASE64format.
4.3.2OnCaptureToFile(ActionResult ASBoolean)
Obtainthefingerprintverificationtemplateforverification,andthetemplate is saved in a file, whose name is set by the property VerTplFileName. ActionResult=trueindicatesthatthefingerprinttemplateisobtainedsuccessfully, andFalserepresentsafailure.
4.3.3OnEnroll(ActionResult ASBoolean,ATemplate)
Callthiseventwhentheuserfingerprintregistrationcompletes.ActionResult =true indicates that the registration is successful, and the fingerprint feature templatecanbecapturedbyusingpTemplatepropertyFalserepresentsafailure.
4.3.4OnEnrollToFile(ActionResult ASBoolean)
Callthiseventwhentheuserfingerprintregistrationcompletes.ActionResult =true indicates that the registration is successful, and the fingerprint feature template is saved in a file, whose name is set as the propertyRegTplFileName Falserepresentsafailure.
4.3.5 OnFeatureInfo(AQualityAsLong)
Obtainthefingerprintsinitialfeature.Qualityrepresentsthequality of this fingerprintsfeature,anditmayhavethefollowingvalues: 0:Goodfingerprintfeature 1:Insufficientfeaturepoints 2: Other reasons resulting in the incapability to capture the fingerprint feature.
ZKSoftwareInc.
http://www.zksoftware.com
25
4.3.7 OnFingerTouching
Callthiseventwhenpressfingeronsensor.
4.3.8 OnFingerLeaving
Callthiseventwhenremovedfingerfromsensor.
26
ZKSoftwareInc.
http://www.zksoftware.com
5. TaskFlowDescription
IsRegister=True BeginEnroll Image OnImageReceived
OnFeatureInfo
ZKSoftwareInc.
http://www.zksoftware.com
27
IsRegister=False BeginCapture
OnImageReceived
Image
OnFeatureInfo
28
ZKSoftwareInc.
http://www.zksoftware.com
TaskFlowDescription: AfterthefingerprintSensorhasenteredtheworkingstatus,callBeginEnroll toenterfingerprintregistrationstatus,andcallBeginCapturetoenterfingerprint verification status. The working mode is based on event motivation, and events canbetriggeredinanorderasshownintheabovesketchgraph. Itisusuallyneededtopressthesamefingerfor1to4timesforfingerprint registration, and a fingerprint registration template will be obtained after the identificationsystemintegratesthem. Thetimes numberneededfor pressingthe finger at registration is defined by the control property EnrollCount, and events OnEnroll and OnEnrollToFile will be triggered if the defined times number is arrivedat. At fingerprint verification, events OnCaptureand OnCaptureToFile will be triggered after pressing the finger. At this moment, VerFinger or IdentificationInFPCacheDBcanbecalledtocarryout1:1or1:Nverification. 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,andthefingershouldberepressed.
ZKSoftwareInc.
http://www.zksoftware.com
29
6. CommonQuestionsDescription
6.1Thedifferencebetween1:1and1:NControl
1 1 Control is mainly used for development projects which need 1:1 verification, and usually the currentlyverified clients PIN should be entered in advance,andafterthatoneorseveraltemplateshe/shehasregisteredareobtained forverificationwhile1:NControldoesnotrequireenteringtheclientsPIN,and this client can be identified by the clients fingerprint out of the registered fingerprinttemplates. 1:1 Control mainly aims to achieve a high pass rate and a relatively high accuracy rate 1:N Control is principally designed to obtain a high verification speedandarelativelyhighaccuracyrate. 1 1Controlsmaximumtemplatelengthisonly310bytes,whilethatfor1:N Control is 1152 bytes. Because 1:N requires highspeed verification, and a remarkably low RAR, relatively more template feature information should be saved.
6.2ReadinandReadoutFingerprintTemplatesinDatabase
In SDK fingerprint templates are saved and called by means of Variant variable.Whatisstoredisonedimensionbinaryarrays,whichcannotbereadin andreadoutbySQLsentencesasforcharacterstrings.Therearetwosolutions: 1 Method EncodeTemplate and method DecodeTemplate are able to make BASE64 code transfer between Variant variables and string variables. One point,whichshouldbeimproved,isthataftervariablesbeingtransferredinto strings,thetemplatelengthwillbeincreasedbyabout1/3. 2 Directly work on Variant variables. An example is shown as the following: Delphi,CB
30 ZKSoftwareInc. http://www.zksoftware.com
ZKSoftwareInc. ZKFingerSDK4.0 Manual procedureTFPProcess.SaveFPData(AQuery:TADOQueryAFingerID:IntegerAFPData: OleVariant) var pData:PChar begin withAQuery dobegin Close SQL.Clear SQL.Add('SELECT*FROMzkFingerPrintWHEREFingerID='+IntToStr(AFingerID)) Open ifIsEmptythen Append else Edit FieldByName('FingerID').Value:=AFingerID //Savethefingerprinttemplate withTBlobStream(CreateBlobStream(FieldByName('Template'),bmWrite))dobegin pData:=VarArrayLock(AFPData) try Write(pData^,VarArrayHighBound(AFPData,1)VarArrayLowBound(AFPData,1)+1) finally VarArrayUnlock(AFPData) end Free end Post Close end end procedure TFPProcess.GetFPData(AQuery: TADOQuery AFingerID: Integer var AFPData: ZKSoftwareInc. http://www.zksoftware.com 31
ZKSoftwareInc. ZKFingerSDK4.0 Manual OleVariant) var pData:PChar begin withAQuerydobegin Close SQL.Clear SQL.Add('SELECT*FROMzkFingerPrintWHEREFingerID='+IntToStr(AFingerID)) Open //readoutdata ifnotIsEmptythen withTBlobStream(CreateBlobStream(FieldByName('Template'),bmRead))dobegin AFPData:=VarArrayCreate([0,Size+1],varByte) pData:=VarArrayLock(AFPData) try Read(pData^,Size) finally VarArrayUnlock(AFPData) end Free end Close end end
For other languages, please refer to the technical discussion forum on www.zksoftware.com.
6.3SoftwareDoggleandAuthorizedLicenseDocumentation
The running of SDK requires software Doggle and authorized license
32 ZKSoftwareInc. http://www.zksoftware.com
documentation. The difference between software Doggle and authorized license documentation is that software Doggle is independent of the fingerprint Sensor which is being used, while authorized license documentation corresponds to the fingerprintSensorwhichisbeingused.Thatis,softwareDogglecanbeusedwith all fingerprint Sensors, but authorized license documentation can only be used withtheauthorizedfingerprintSensor. Thisitemhasbeencanceledinthe 4.0 Version
6.4Theuseof1:Nhighspeedbuffer
For1:Nverification,itisneededtocategorizethetemplatestobeverifiedat thesametime,inordertoachievehigherspeed,SDKneedstocreatememoryfirst, andthenaddregisteredfingerprintstothememory.Infact,highspeedbufferisa kind of memory. In practice, firstly we need to create the buffer by the method CreateFPCahceDB, and then by methods such as, AddRegTemplateToFPCahceDBRemoveRegTemplateFromFPCacheDB and so on,toaddordeletefingerprintregistrationtemplates,andlastlyfreethememory bythemethodFreeFPCacheDB. Wecancreate multiple highspeedbuffersatthesametimesoastorealize suchfunctionsasgroupingquery.
6.5Usingfingerprintimages
In projects where 1:1 Control is used, quite often you are required to save fingerprintimages, orto obtain plane fingerprint imagesdirectlyfromscanning. Thus, 1:1 Control SDK provides methods, which are capable of capturing fingerprintregistrationtemplates directlyfrom plane fingerprintimages,suchas AddImageFile. But what should be paid attention to is that images should be capturedcorrectly,andtheirresolutionmustnotbelessthan 350DPI. Note:SDKin Lite Versiondosenotprovidethesemethods.
ZKSoftwareInc.
http://www.zksoftware.com
33
6.6Settingfingerprintidentificationthreshold
In1:1Control,therecommendationvalue forthe property Thresholdis10. Inthiscase,FARisabout0.01%,andFRRrangesfrom1.5%to2%. In1:1Control,therecommendationvalue forthe property Thresholdis10. In this case, FAR is about 0.001%, FRR is about 3%, and the recommendation valuefortheproperty OneToOneThreshold is10.
34
ZKSoftwareInc.
http://www.zksoftware.com
ZKSoftwareInc. ZKFingerSDK4.0 Manual IdentificationFromFileInFPCacheDB (fpcHandle As Long, pVerTemplateFile As String, ByvalScore AsLong,ByvalProcessedFPNumber AsLong)AsLong
Verification Templates
ClassifyTemplates
Searchforfingerprintsinthehighspeedbufferaccordingtogroupingquery
VerifyFingerprints
Yes
VerificationScore>=Threshold
N Verification Y
AllVerification
Y
Highestscoreforquestion fingerprints>=Score
ZKSoftwareInc.
http://www.zksoftware.com
35
1:1lowspeedverifyquestionablefingerprints
Verificationresult FALSE N
All
TRUE
Y 1:1verifylowspeedfingerprintsinthehighspeedbuffer
TRUE Verification Y N
All
Yes Verificatio
Return
Verification
36
ZKSoftwareInc.
http://www.zksoftware.com
6.8ConnectingmultiplefingerprintSensors
In the window one control responds to one fingerprint Sensor. Different fingerprint Sensors can be set by using SensorIndex, and the number of fingerprintSensorscanbeobtainedbythepropertySensorCount.Ifyouwantto differentiate the fingerprint Sensors from each other, utilize the property SensorSN,whichisuniqueforeachfingerprintSensor. ZK6000Fingerprintsensoronlyisaollowedtooneunitconnectwith
ZKSoftwareInc.
http://www.zksoftware.com
37
7. DEMO ProgramDescription
HereVBsampleprogramof1:NControlisusedfordescription(whichissimilar tothatof1:1Control). At first it must be confirmed that 1:N Control has been registered, Doggle has beenpluggedintotheparallelportorauthorizeddocumentationhasbeencopied to the path of the current application program, and the fingerprint Sensor driver hasbeeninstalled. RunDemoinVB,andthefollowingformwillappear:
ThenameofthewindowfingerprintcontrolisZKFPEngX1. 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.
38 ZKSoftwareInc. http://www.zksoftware.com
Theinitializationcodeisasthefollowing: IfZKFPEngX1.InitEngine=0Then MessageBox0,"Initializationsucceeds","Promptmessage",0 StatusBar.Caption="FingerprintSensorconnection" TextSensorCount.Text=ZKFPEngX1.SensorCount&"" TextSensorIndex.Text=ZKFPEngX1.SensorIndex&"" TextSensorSN.Text=ZKFPEngX1.SensorSN cmdInit.Enabled=False FMatchType=0 EndIf Press the Register Fingerprint button to enter the fingerprint registration status, andthecodeislikethethis: IfTrim(TextFingerName.Text)=""Then MessageBox0,"Pleaseenterthefingerprintnamelabel! ","False",0 ExitSub EndIf ZKFPEngX1.BeginEnroll StatusBar.Caption="Startregistration" Atthismoment,thefingerprintSensorisunderthestatusofregistration,and every time pressing a finger will trigger events OnImageReceived (display images)andOnFeatureInfojudgewhetherthefingerprintisqualifiedornot. Pressingafingerforoneorfoureffectivetimes(notcountingtimesifthefingeris unqualified) will trigger events OnEnroll and OnEnrollToFile, and the specific pressingtimes numberissetbythepropertyEnrollCount.OnEnrollcodeislike
ZKSoftwareInc. http://www.zksoftware.com 39
this: DimiAsLong IfNotActionResultThen MessageBox0,"Fingerprintregistrationfailed! ","Warning",0 Else MessageBox0,"Fingerprintregistrationsucceeded!","Message",0 FRegTemplate=ATemplate ZKFPEngX1.SaveTemplate"c:\fingerprint.tpl",ATemplate ZKFPEngX1.AddRegTemplateFileToFPCacheDB fpcHandle, FingerCount, "c:\fingerprint.tpl" ReDimPreserveFFingerNames(FingerCount+1) FFingerNames(FingerCount)=TextFingerName.Text FingerCount=FingerCount+1 EndIf Parameter ActionResult=True indicates successful registration, and parameter Atemplate represents the fingerprint registration template otherwise the registrationfailed. PressthebuttonVerify Fingerprintto enterthestatus offingerprint verification, and the fingerprint Sensor will be under the status of verification. Pressing a fingerwilltriggereventsOnImageReceived(displayimages)andOnFeatureInfo judgewhetherthe fingerisqualified ornot,andaqualifiedfingerprintwill trigger events OnCapture and OnCaptureToFile verify by the verification method. OnCapturecodeislikethis: DimfiAsLong,iAsLong
40 ZKSoftwareInc. http://www.zksoftware.com
DimScoreAsLong,ProcessNumAsLong DimRegChangedAsBoolean StatusBar.Caption="capturefingerprintfeature" IfFMatchType=1Then '1:1 If ZKFPEngX1.VerFinger(FRegTemplate, ATemplate, False, RegChanged) Then MessageBox 0, "Fingerprint verification succeeded! ", "Prompt message",0 Else MessageBox0,"Fingerprintverificationfailed!","Promptmessage",0 EndIf 'IfZKFPEngX1.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 'EndIf ElseIfFMatchType=2Then'1:N Score=8 fi=ZKFPEngX1.IdentificationInFPCacheDB(fpcHandle,ATemplate,Score, ProcessNum) Iffi=1Then MessageBox0,"Fingerprintverificationfailed","Promptmessage",0 Else MessageBox 0, "Fingerprint verification succeeded Name=" & FFingerNames(fi) & " Score = " & Score & " Processed Number = " & ProcessNum,"Promptinformation",0 EndIf
ZKSoftwareInc. http://www.zksoftware.com 41
EndIf OnImageReceivedeventcode(displayfingerprintimages): ZKFPEngX1.PrintImageAt hDC, FrameCommands.Width + 6, FrameCommands.Top,ZKFPEngX1.ImageWidth,ZKFPEngX1.ImageHeight OnFeatureInfo eventcode(judgefingerprintquality): DimsTempAsString sTemp="" IfZKFPEngX1.IsRegisterThen sTemp = "registration status: press again" & ZKFPEngX1.EnrollIndex & "timefingerprint!" EndIf sTemp=sTemp&"fingerprintquality" IfAQuality<>0Then sTemp=sTemp&"Unqualified:"&AQuality Else sTemp=sTemp&"Qualified" EndIf 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 meansthatDogglehasnotbeenpluggedin,orthedriverhasnotbeeninstalled.
42
ZKSoftwareInc.
http://www.zksoftware.com
8. ZKFingerSDKDevelopmentLicenseAgreement
All these who order and use the products (including, but not limited to, ZKFinger development kit, discs, CDROM, Doggle and Development Manual) provided by Beijing Zhongkong Automation System Inc., Ltd (or its subsidiary company, as Zksoftware Inc. mentioned below), the subsidiary of ZkSoftware Inc., Ltd, are subject to the terms and conditions set up in this agreement (ZKFingeristheregisteredtrademarkofthenucleartechnologyofZKSoftware). If you open the sealed kit consisting of ZKFinger Development Kit and Development Manual, or you install the belowmentioned software or use this software on your computer, or you are using any products of ZKSoftware, you willacceptthisagreementwithoutoption,andatthesametime,youmustobserve thetermsandconditionssetupinthisagreement. If you do not want to be subject to the terms and conditions set up in this agreement,youmustreturnZKFingerDevelopmentKitandDevelopmentManual to ZKSoftware Inc. immediately (at least within 7 days after you have received thisinformationkit),andyourwillreceivetherefund. 1 TitleandProperty Thisisalicenseagreementbutnotasalesagreement.Youareauthorizedby ZKSoftwareInc.here,thusfromanindividualoracompanyjuridicalperson,you receivethelicense(thelicensetotransferandtherighttoresellaresubjecttothe termsandconditions clearlyset up hereinto)to usethe products ofZKSoftware Inc, which is not exclusive and can not be transferred, and these licenses and rightsarestatedbythetermsandconditionsherein. Thesoftware components of ZKSoftwaresproducts,includingany editing, correcting,modifying,addingorupdatingZKSoftwareDevelopmentManual,any other files or user guide related to the software, will reserve the property for
ZKSoftwareInc. http://www.zksoftware.com 43
ZKSoftwareInc. 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, commercialsecrets,trademarks,andsoon),andZKSoftwareInc.sDevelopment Manualandanyotherfilesare,andshouldbeonlypossessedbyZKSoftwareInc. Under any laws and rules, any content in this agreement does not construct the waveringofZKSoftwareInc.sintelligenceproperty 2 License Youareallowedwithlimittousethesoftware,whichmustbestatedbythis agreementandmustalsobeexecutablefileformatted. a) Youcaninstallandusethesoftwareinthecomputerinyouroffice. b) Youareallowedtohavecopies ofthesoftwareofreasonable number, whichcannotsurpassthree. c) You can connect and copy the software to your computers programs, onlyforthepurposeofthedevelopmentofthiscomputersprograms,as described in ZKSoftware Inc.s Development Manual but, any parts connected and copied to another computer is viewed as derived products,andthetermsandconditionsinthisagreementshouldalsobe observed. 3 LicenseTransfer Accordingtothedescriptioninthesecondpart,inyoucomputersprograms, afteryoupluginthesoftware,youmayintegratethepluggedinsoftwareandthe softwarepurchasedfromZKSoftwareInc.,andthentransferthelicensetoaseller or a user in accordance with the terms and conditions in this agreement. Before transferringthelicense,youshouldaddtheclausesrelatedtoguaranty,waiverand
44 ZKSoftwareInc. http://www.zksoftware.com
licensestatedbyZKSoftwareInc.inthisagreementtothenewagreementsigned byyouandthesellerortheuser,oryouprovidetheabovementionedclausesto thesellerortheuserdirectly. 4 Forbiddance YouaregrantedsomerightsasclarifiedintheaboveSection1andSection2, butyoushouldagreenotto: d) Use, modify , insert or transfer the software or any other products of ZKSoftware Inc. (including, but not limited to, test modules), except authorizationspecificallystatedinthisagreement e) Sell,transferlicense,andlease,transfer, mortgage orshareyourrights toothersunderthisagreement f) Modify, disassemble,decompile,reverseengine, delete oraddoriginal codesofthissoftwareorcodesintendedtodeducethissoftware g) Putthissoftwareonaserver,sothatothersareabletoobtainitfroma publicnetwork h) Usethebackupofthissoftwareordocumentationcopies(orletothers havethiskindofcopies)foranypurpose,exceptreplacingtheoriginal copywhichhasbeenbrokenorhasmalfunctions. 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 relatedtothisguide,youmaycontactZKSoftwareInc. 5 LimitedGuaranty ZKSoftwareInc.makesatwelvemonthguaranty(guarantyperiod),that: i) Whenthesoftwareisdeliveredtoyou,andifyourcomputershardware
ZKSoftwareInc. http://www.zksoftware.com 45
environment and the operation system are matched with the designed ones,thesoftwarewillworkinthemannerasdescribedinDevelopment Manual. j) Magnetic media which solidify this software do not have remarkable flawsintermsofthematerialandthetechnique. k) ZKFinger Doggle dose not have remarkable flaws in terms of the materialandthetechnique. 6 Nonguaranty ZKSoftware Inc. dose not guarantee that all its products will meet your requirementsanddose not guaranteethatits operation willnotbeinterrupted or noerrorwilltakeplace. 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 guaranties include, but are not limited to, connotative guaranty relatedwithsalesandforanyspecificpurpose. 7 PreparationLimit If the guaranty is violated, the only responsibility ZKSoftware Inc. should takeistoreplaceorrepairtheproduct.Ifanyproductoritspartsdonotmeetthe abovementioned 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 submittedtoZKSoftwareInc.onthedaywhenthemalfunctionisdiscovered.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 togetherwithyourreceiptcopies.
46
ZKSoftwareInc.
http://www.zksoftware.com
8 Removingindirectdamages The both parties admit of the inherent intricacy of this software and the productsofZKSoftwareInc.,andacknowledgethatthesoftwareandtheproducts cannotbeperfectwithoutanyfalse.ZKSoftwareInc.willnotberesponsiblefor 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 conductwhetheritisviolationandnegligenceornotaccordingthisagreementor anyotherspecifications.Thecostanddamagesinclude,butarenotlimitedto: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 possibilityofthedamages. 9 ResponsibilityLimit Undercertaincircumstances, inspite ofthe termsandconditionsset outin thisagreement, if ZKSoftwareInc.isstillresponsible forthe damage causedby any malfunction and disqualification of the product, then the total responsibility feeforeachproductwhichhasproblems,willnotsurpassthefeepaidbyyouto ZKSoftwareInc.forthepurchaseoftheproduct. 10 Nootherguaranty
Exceptwhathasbeenspecifiedherein,ZKSoftwareInc.willnotprovideany other specific or connotative guaranty, and will not be responsible for any products described in the prelude of this agreement, including their quality, performance,andtheflexibilityforaspecificpurpose. 11 Termination
ZKSoftwareInc. http://www.zksoftware.com 47
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 agreementofZKSoftwareInc.: l) Thelicenseauthorizedbythisagreementtoyouwillbeinvalid,andyou cannotcontinuetouse(includingtransferringthelicense)thelicensed softwareandanyotherlicensedproducts. 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 typeofinformation. Inspiteoftheterminationofthisagreement,Clause1456789 10and11willpreserve. 12 DominationLawandJurisdictionRight ThisagreementisunderthesupervisionofthelawsofthePeoplesRepublic of China, and only Chinese courts possess the jurisdiction right for any conflict anddiscordasidefromthisagreement.
ZKAutomationSystemLtd.,Inc.,Beijing
48
ZKSoftwareInc.
http://www.zksoftware.com
9. SoftwareAftersaleService
Thanks for yourattentionto our products.Fortheconvenience that weare capable of providing you with our perfect service, please log on our technical forum,andcompleteregistrationinformation,sothatwecancontactyouintime. Weareavailablefrom9:00a.m.to6p.m.fromMondaytoFriday,thereare personsondutyonSaturdays,andstatutoryholidaysandSundaysareexcluded. You calls or emails are welcome at any time, and we are ready to solve problemsforyou. Before you are prepared to call us, please first confirm that you have completed all operation procedures according to the manual, and that you have closeanyotherapplicationprogramsyouhaveused. Wecanbecontactat: Address:Room1008,PacificInternationalBuilding,No.106,ZhichunRoad, ZhongguancunDistrict,Beijing ZipCode:100086 Telephone:0105151801051518011515180125151801351518014 Fax:01051518015 Emailsupport@biometric.com.cn If you have got any technical problems concerning this set of products, pleasepreparethefollowinginformation,sothatweareabletoremoveproblems foryouwithintheshortestperiod: 1 Softwarename 2 Theconfigurationofyourcomputer(includingthebrand,computertype, CPU,EMSmemory,discdriver,mainboard brand,andsoon). 3 Windows95/98/NT4.0/2000/XPoranyotherenvironments 4 anyapplicationprogramsyouareusing
ZKSoftwareInc. http://www.zksoftware.com 49
5 Detaileddescriptionabouttheproblem You are welcomed to log on our website: www.zksoftware.comvisit our technicalforumandsubmityourquestionsandsuggestion.Wewilltrytoprovide youwithsatisfactoryrepliesinthesoonestmanner.
50
ZKSoftwareInc.
http://www.zksoftware.com
10.ContactUs
ZKSoftwareScience(Beijing)SalesandServiceCenter
Address: Room 1008, Pacific International Building, No. 16, Zhichun Road, Zhongguancun,Beijing,ZipCode:100086 Telephone01051518010515180115151801251518013 Fax01051518015
ZkSoftware(Shanghai)TechnicalSupportCenter
th Address:5 floor,No.1407,TibetSouthRoad,ShanghaiZipCode:200011 Telephone:0215307199663123327 Fax:02153071262
ZkSoftware(Shenzhen)TechinicalSupportCenter
th Address: 4 floor, Tongye Building, Langang Section, Xiameilin Road, Futian District,Shenzhen ZipCode:518000 Telephone:075539383123938310 Fax:07553938310
ZkSoftware(Lanzhou)TechnicalSupportCenter
Address:No.189,KejiStreet,LanzhouCity,GansuProvince ZipCode: 730000 TelephoneExchange:0931827744582668398262345Fax:09318279546
ZKSoftwareInc.
http://www.zksoftware.com
51