<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta name="generator" content="pdf2htmlEX">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="stylesheet" href="https://static.pudn.com/base/css/base.min.css">
<link rel="stylesheet" href="https://static.pudn.com/base/css/fancy.min.css">
<link rel="stylesheet" href="https://static.pudn.com/prod/directory_preview_static/6275d2c516f2c0769c4d52f1/raw.css">
<script src="https://static.pudn.com/base/js/compatibility.min.js"></script>
<script src="https://static.pudn.com/base/js/pdf2htmlEX.min.js"></script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
<title></title>
</head>
<body>
<div id="sidebar" style="display: none">
<div id="outline">
</div>
</div>
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6275d2c516f2c0769c4d52f1/bg1.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x1 h3 y2 ff1 fs0 fc0 sc0 ls0 ws0"> <span class="_ _0"></span> </div><div class="t m0 x2 h4 y3 ff2 fs1 fc0 sc0 ls0 ws0">FP-200<span class="_ _1"> </span><span class="ff3 sc1">指纹识别算法使用手册</span></div><div class="t m0 x3 h4 y4 ff2 fs1 fc0 sc0 ls0 ws0">4. <span class="_ _2"></span>ActiveX<span class="_ _1"> </span><span class="ff3 sc1">控件参考</span></div><div class="t m0 x4 h5 y5 ff1 fs2 fc0 sc0 ls0 ws0">SDK<span class="_ _3"> </span><span class="ff3">分为<span class="_ _4"> </span></span>1:1<span class="_ _3"> </span><span class="ff3">和<span class="_ _3"> </span></span>1:N<span class="_ _3"> </span><span class="ff3">两个<span class="_ _5"></span>控件<span class="_ _5"></span>,其<span class="_ _5"></span>中<span class="_ _5"></span>接口<span class="_ _5"></span>属性<span class="_ _5"></span>和方<span class="_ _5"></span>法<span class="_ _5"></span>基本<span class="_ _5"></span>相同<span class="_ _5"></span>,而<span class="_ _5"></span>接<span class="_ _5"></span>口方<span class="_ _5"></span>法只<span class="_ _5"></span>有涉<span class="_ _5"></span>及</span></div><div class="t m0 x3 h5 y6 ff1 fs2 fc0 sc0 ls0 ws0">1:N<span class="_ _3"> </span><span class="ff3">比对部分不同,因此以下综合说明两个控件,不同之处将分别标出和说明。</span></div><div class="t m0 x4 h5 y7 ff3 fs2 fc0 sc0 ls0 ws0">以下是语法说明,其中指纹模板<span class="_ _3"> </span><span class="ff1">V<span class="_ _2"></span>ariant<span class="_ _6"> </span><span class="ff3">变量代表一维字节数组。</span></span></div><div class="t m0 x3 h6 y8 ff4 fs3 fc0 sc0 ls0 ws0">4.1<span class="_ _7"> </span><span class="ff3 sc1">属性</span></div><div class="t m0 x3 h7 y9 ff2 fs4 fc0 sc0 ls0 ws0">4.1.1 Active as Boolean</div><div class="t m0 x4 h8 ya ff5 fs2 fc0 sc0 ls0 ws0">Read only</div><div class="t m0 x4 h5 yb ff3 fs2 fc0 sc0 ls0 ws0">当前<span class="_ _6"> </span><span class="ff1">SensorIndex<span class="_ _3"> </span></span>设定的指纹采集器是否准备就绪。</div><div class="t m0 x3 h7 yc ff2 fs4 fc0 sc0 ls0 ws0">4.1.2 EngineV<span class="_ _2"></span>alid as Boolean</div><div class="t m0 x4 h8 yd ff5 fs2 fc0 sc0 ls0 ws0">Read only</div><div class="t m0 x4 h5 ye ff3 fs2 fc0 sc0 ls0 ws0">指纹识别系统是否正常工作。调用过函数<span class="_ _6"> </span><span class="ff1">initEngine<span class="_ _3"> </span></span>后会返回有效结果</div><div class="t m0 x3 h7 yf ff2 fs4 fc0 sc0 ls0 ws0">4.1.3 Enroll<span class="_ _0"></span>Index <span class="_ _8"></span>As Long</div><div class="t m0 x4 h8 y10 ff5 fs2 fc0 sc0 ls0 ws0">Read only</div><div class="t m0 x4 h5 y11 ff3 fs2 fc0 sc0 ls0 ws0">登记指纹时取样的序号,即表示当前手指登记已经取到的有效次数。</div><div class="t m0 x3 h7 y12 ff2 fs4 fc0 sc0 ls0 ws0">4.1.4 Enroll<span class="_ _0"></span>Count <span class="_ _8"></span>As Long</div><div class="t m0 x4 h5 y13 ff3 fs2 fc0 sc0 ls0 ws0">登记指纹时取样的次数,取值范围为<span class="_ _6"> </span><span class="ff1">1-4<span class="_ _3"> </span></span>次</div><div class="t m0 x3 h7 y14 ff2 fs4 fc0 sc0 ls0 ws0">4.1.5 FPEngineV<span class="_ _2"></span>ersion <span class="_ _8"></span>AS String</div><div class="t m0 x4 h8 y15 ff5 fs2 fc0 sc0 ls0 ws0">read only</div><div class="t m0 x4 h5 y16 ff3 fs2 fc0 sc0 ls0 ws0">指纹识别系统版本号</div><div class="t m0 x3 h7 y17 ff2 fs4 fc0 sc0 ls0 ws0">4.1.6 ImageHeight <span class="_ _8"></span>AS integer</div><div class="t m0 x4 h8 y18 ff5 fs2 fc0 sc0 ls0 ws0">Read only</div><div class="t m0 x4 h5 y19 ff3 fs2 fc0 sc0 ls0 ws0">指纹图像的高度</div><div class="t m0 x3 h7 y1a ff2 fs4 fc0 sc0 ls0 ws0">4.1.7 ImageWidth <span class="_ _9"></span>AS integer</div><div class="t m0 x4 h8 y1b ff5 fs2 fc0 sc0 ls0 ws0">Read only</div><div class="t m0 x4 h5 y1c ff3 fs2 fc0 sc0 ls0 ws0">指纹图像的宽度</div><div class="t m0 x3 h7 y1d ff2 fs4 fc0 sc0 ls0 ws0">4.1.8 IsRegister <span class="_ _9"></span>As Boolean</div><div class="t m0 x4 h8 y1e ff5 fs2 fc0 sc0 ls0 ws0">Read only</div><div class="t m0 x4 h5 y1f ff3 fs2 fc0 sc0 ls0 ws0">是否正登记指纹</div></div><div class="t m0 x5 h3 y20 ff1 fs0 fc0 sc0 ls0 ws0">1</div></div><div class="pi" data-data='{"ctm":[1.611850,0.000000,0.000000,1.611850,0.000000,0.000000]}'></div></div>
</body>
</html>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6275d2c516f2c0769c4d52f1/bg2.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x1 h3 y2 ff1 fs0 fc0 sc0 ls0 ws0"> <span class="_ _0"></span> </div><div class="t m0 x3 h7 y21 ff2 fs4 fc0 sc0 ls0 ws0">4.1.9 OneT<span class="_ _2"></span>oOneThreshold <span class="_ _9"></span>As Boolean</div><div class="t m0 x4 h5 y22 ff3 fs2 fc0 sc0 ls0 ws0">设定<span class="_ _3"> </span><span class="ff1">Biokey<span class="_"> </span></span>低速<span class="_ _5"></span>指纹<span class="_ _3"> </span><span class="ff1">1<span class="_ _5"></span></span>:<span class="_ _5"></span><span class="ff1">1<span class="_ _3"> </span></span>比对<span class="_ _5"></span>的识<span class="_ _5"></span>别<span class="_ _5"></span>阀值<span class="_ _5"></span>分数<span class="_ _a"></span><span class="ff1">(1-100)</span>,<span class="_ _5"></span>默<span class="_ _5"></span>认为<span class="_ _3"> </span><span class="ff1">10<span class="_ _5"></span></span>,值<span class="_ _5"></span>越<span class="_ _5"></span>大,<span class="_ _5"></span>误判<span class="_ _5"></span>率</div><div class="t m0 x3 h5 y23 ff3 fs2 fc0 sc0 ls0 ws0">越低同时拒绝率变大</div><div class="t m0 x4 h5 y24 ff3 fs2 fc0 sc0 ls0 ws0">注意:<span class="ff1">1:1<span class="_ _6"> </span></span>控件没有这个属性</div><div class="t m0 x3 h7 y25 ff2 fs4 fc0 sc0 ls0 ws0">4.1.10 RegTplFileName <span class="_ _8"></span>As String</div><div class="t m0 x4 h5 y26 ff3 fs2 fc0 sc0 ls0 ws0">设置当事件<span class="_ _6"> </span><span class="ff1">OnEnrollT<span class="_ _9"></span>o<span class="_ _5"></span>File<span class="_ _6"> </span><span class="ff3">发生时,保存指纹登记模板的文件名称。</span></span></div><div class="t m0 x3 h7 y27 ff2 fs4 fc0 sc0 ls0 ws0">4.1.1<span class="_ _9"></span>1<span class="_ _5"></span> SensorCount <span class="_ _9"></span>As Long</div><div class="t m0 x4 h8 y28 ff5 fs2 fc0 sc0 ls0 ws0">Read only</div><div class="t m0 x4 h5 y29 ff3 fs2 fc0 sc0 ls0 ws0">当前连接到计算机的指纹采集器的个数,当<span class="_ _6"> </span><span class="ff1">EngineV<span class="_ _2"></span>alid<span class="_ _3"> </span><span class="ff3">无效时,返回<span class="_ _6"> </span></span>0</span></div><div class="t m0 x3 h7 y2a ff2 fs4 fc0 sc0 ls0 ws0">4.1.12 SensorIndex <span class="_ _8"></span>AS Long</div><div class="t m0 x4 h5 y2b ff3 fs2 fc0 sc0 ls0 ws0">连接多个指纹采集器时,选择指纹头的序号,从<span class="_ _6"> </span><span class="ff1">0<span class="_ _3"> </span></span>开始;小于零时指纹采集器不工作。</div><div class="t m0 x3 h7 y2c ff2 fs4 fc0 sc0 ls0 ws0">4.1.13 SensorSN <span class="_ _8"></span>As String</div><div class="t m0 x4 h5 y2d ff3 fs2 fc0 sc0 ls0 ws0">指纹采集器的硬件序列号</div><div class="t m0 x3 h7 y2e ff2 fs4 fc0 sc0 ls0 ws0">4.1.14 T<span class="_ _2"></span>emplateLen <span class="_ _9"></span>As Long</div><div class="t m0 x4 h8 y2f ff5 fs2 fc0 sc0 ls0 ws0">Read only</div><div class="t m0 x4 h5 y30 ff3 fs2 fc0 sc0 ls0 ws0">指纹登记模板的字节长度。</div><div class="t m0 x3 h7 y31 ff2 fs4 fc0 sc0 ls0 ws0">4.1.15 Threshold <span class="_ _9"></span>As Long</div><div class="t m0 x4 h5 y32 ff3 fs2 fc0 sc0 ls0 ws0">设定指<span class="_ _5"></span>纹识别系<span class="_ _5"></span>统比对<span class="_ _5"></span>识别阀值<span class="_ _5"></span>分数<span class="_ _5"></span><span class="ff1">(1-100)<span class="_ _5"></span></span>,默认为<span class="_ _3"> </span><span class="ff1">10</span>,<span class="_ _5"></span>值越大<span class="_ _5"></span>,误判率<span class="_ _5"></span>越低同<span class="_ _5"></span>时拒</div><div class="t m0 x3 h5 y33 ff3 fs2 fc0 sc0 ls0 ws0">绝率变大</div><div class="t m0 x3 h7 y34 ff2 fs4 fc0 sc0 ls0 ws0">4.1.16 V<span class="_ _2"></span>erTplFileName<span class="_ _5"></span> <span class="_ _9"></span>As String</div><div class="t m0 x4 h5 y35 ff3 fs2 fc0 sc0 ls0 ws0">设置当事件<span class="_ _6"> </span><span class="ff1">OnCaptureT<span class="_ _9"></span>o<span class="_ _5"></span>File<span class="_ _6"> </span><span class="ff3">发生时,保存指纹验证模板的文件名称。</span></span></div><div class="t m0 x3 h6 y36 ff4 fs3 fc0 sc0 ls0 ws0">4.2 <span class="ff3 sc1">方法</span></div><div class="t m0 x3 h9 y37 ff2 fs5 fc0 sc0 ls0 ws0">1<span class="ff3 sc1">:</span>1<span class="_ _4"> </span><span class="ff3 sc1">和<span class="_ _b"> </span></span>1<span class="ff3 sc1">:</span>N<span class="_ _4"> </span><span class="ff3 sc1">控件接口相同的方法:</span></div><div class="t m0 x3 h7 y38 ff2 fs4 fc0 sc0 ls0 ws0">4.2.1 Sub BeginEnroll()</div><div class="t m0 x4 h5 y39 ff3 fs2 fc0 sc0 ls0 ws0">开始登记指纹,登记结束后发生<span class="_ _6"> </span><span class="ff1">OnEnroll<span class="_ _3"> </span></span>事件。</div></div><div class="t m0 x5 h3 y20 ff1 fs0 fc0 sc0 ls0 ws0">2</div></div><div class="pi" data-data='{"ctm":[1.611850,0.000000,0.000000,1.611850,0.000000,0.000000]}'></div></div>
<div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6275d2c516f2c0769c4d52f1/bg3.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x1 h3 y2 ff1 fs0 fc0 sc0 ls0 ws0"> <span class="_ _0"></span> </div><div class="t m0 x3 h7 y3a ff2 fs4 fc0 sc0 ls0 ws0">4.2.2 Sub CancelEnroll()</div><div class="t m0 x4 h5 y23 ff3 fs2 fc0 sc0 ls0 ws0">取消当前的指纹登记状态,即由<span class="ff1"> BeginEnroll<span class="_ _6"> </span></span>开始的操作可由此函数中断。</div><div class="t m0 x3 h7 y3b ff2 fs4 fc0 sc0 ls0 ws0">4.2.3 Function DongleIsExist <span class="_ _8"></span>As Boolean</div><div class="t m0 x4 h5 y3c ff3 fs2 fc0 sc0 ls0 ws0">检查加密狗是否存在。</div><div class="t m0 x3 h7 y3d ff2 fs4 fc0 sc0 ls0 ws0">4.2.4<span class="_ _c"></span> Function <span class="_ _c"></span>DongleSeed(Byval<span class="_ _a"></span> <span class="_ _a"></span>lp2<span class="_ _5"></span> As<span class="_ _a"></span> <span class="_ _a"></span>Long,<span class="_ _5"></span> <span class="_ _a"></span>Byval<span class="_ _a"></span> <span class="_ _a"></span>p1,<span class="_ _5"></span> <span class="_ _a"></span>p2,<span class="_ _a"></span> <span class="_ _a"></span>p3,<span class="_ _a"></span> <span class="_ _5"></span>p4<span class="_ _a"></span> As<span class="_ _a"></span> <span class="_ _5"></span>In<span class="_ _5"></span>teger)</div><div class="t m0 x3 h7 y3e ff2 fs4 fc0 sc0 ls0 ws0">As Boolean</div><div class="t m0 x4 h5 y3f ff3 fs2 fc0 sc0 ls0 ws0">得到种子码<span class="_ _6"> </span><span class="ff1">lp2<span class="_ _3"> </span></span>的四个<span class="_ _3"> </span><span class="ff1">16<span class="_ _6"> </span></span>位整数<span class="ff1">(p1,p2,p3,p4)</span>返回值,加密狗可以通过内部算法计算一</div><div class="t m0 x3 h5 y40 ff3 fs2 fc0 sc0 ls0 ws0">个种<span class="_ _5"></span>子码,<span class="_ _5"></span>得到<span class="_ _5"></span>四个<span class="_ _5"></span>返回<span class="_ _5"></span>码。种<span class="_ _5"></span>子码<span class="_ _5"></span>算法是<span class="_ _5"></span>不公<span class="_ _5"></span>开的<span class="_ _5"></span>,可<span class="_ _5"></span>以通过<span class="_ _5"></span>检查<span class="_ _5"></span>返回码<span class="_ _5"></span>是否<span class="_ _5"></span>是期<span class="_ _5"></span>望的</div><div class="t m0 x3 h5 y29 ff3 fs2 fc0 sc0 ls0 ws0">值来检查加密狗是否存在。</div><div class="t m0 x3 h7 y41 ff2 fs4 fc0 sc0 ls0 ws0">4.2.5 Function DongleUserID <span class="_ _8"></span>As Long</div><div class="t m0 x4 h5 y42 ff3 fs2 fc0 sc0 ls0 ws0">读出加密狗中的用户<span class="_ _6"> </span><span class="ff1">ID</span>,用户<span class="_ _3"> </span><span class="ff1">ID<span class="_ _6"> </span></span>不会重复相同。保存在加密狗内部特定位置。</div><div class="t m0 x3 h7 y43 ff2 fs4 fc0 sc0 ls0 ws0">4.2.6 Function DongleMemRead(Byval p1, p2 <span class="_ _8"></span>As Integer<span class="_ _2"></span>, buf) <span class="_ _8"></span>As Boolean</div><div class="t m0 x4 h5 y44 ff3 fs2 fc0 sc0 ls0 ws0">读出加密狗<span class="_ _5"></span>内存区位置<span class="_ _4"> </span><span class="ff1">p1<span class="_ _6"> </span></span>开<span class="_ _5"></span>始的<span class="_ _3"> </span><span class="ff1">p2<span class="_ _6"> </span></span>个字节<span class="_ _5"></span>到<span class="_ _6"> </span><span class="ff1">V<span class="_ _9"></span>ariant<span class="_ _6"> </span><span class="ff3">变量<span class="_ _3"> </span></span>buf(<span class="ff3">一维<span class="_ _5"></span>字节数组<span class="_ _5"></span></span>)<span class="ff3">。内存区</span></span></div><div class="t m0 x3 h5 y45 ff3 fs2 fc0 sc0 ls0 ws0">共有<span class="_ _6"> </span><span class="ff1">24<span class="_ _3"> </span></span>个字节,位置为<span class="_ _6"> </span><span class="ff1">0-23</span></div><div class="t m0 x3 h7 y46 ff2 fs4 fc0 sc0 ls0 ws0">4.2.7 Function DongleMemWrite(Byval p1, p2 <span class="_ _9"></span>As Integer<span class="_ _2"></span>, buf) <span class="_ _8"></span>As Boolean</div><div class="t m0 x4 h5 y47 ff3 fs2 fc0 sc0 ls0 ws0">写入<span class="_ _3"> </span><span class="ff1">V<span class="_ _2"></span>ariant<span class="_ _6"> </span><span class="ff3">变<span class="_ _5"></span>量<span class="_ _6"> </span></span>buf(<span class="ff3">一<span class="_ _5"></span>维字节数组<span class="_ _5"></span></span>)<span class="ff3">到加<span class="_ _5"></span>密狗内存区位置<span class="_ _4"> </span></span>p1<span class="_ _3"> </span><span class="ff3">开始的<span class="_ _3"> </span></span>p2<span class="_ _6"> </span><span class="ff3">个字<span class="_ _5"></span>节内。内存</span></span></div><div class="t m0 x3 h5 y48 ff3 fs2 fc0 sc0 ls0 ws0">区共有<span class="_ _6"> </span><span class="ff1">24<span class="_ _3"> </span></span>个字节,位置为<span class="_ _6"> </span><span class="ff1">0-23</span></div><div class="t m0 x3 h7 y49 ff2 fs4 fc0 sc0 ls0 ws0">4.2.8 Function GetT<span class="_ _2"></span>emplate<span class="_ _5"></span>()</div><div class="t m0 x4 h5 y4a ff3 fs2 fc0 sc0 ls0 ws0">得到最近一次获得的指纹模板。</div><div class="t m0 x3 h7 y4b ff2 fs4 fc0 sc0 ls0 ws0">4.2.9 Function GetFingerImage(Byval <span class="_ _8"></span>AFingerImage) <span class="_ _8"></span>As Boolean</div><div class="t m0 x4 h5 y4c ff3 fs2 fc0 sc0 ls0 ws0">得到最近一次获得的指纹图像<span class="ff1">(BMP<span class="_ _8"></span> <span class="ff3">格式</span>)<span class="ff3">。</span></span></div><div class="t m0 x3 h7 y4d ff2 fs4 fc0 sc0 ls0 ws0">4.2.10 Function InitEngine() <span class="_ _8"></span>As Long</div><div class="t m0 x4 h5 y4e ff3 fs2 fc0 sc0 ls0 ws0">初<span class="_ _d"> </span>始<span class="_ _d"> </span>化<span class="_ _d"> </span>指<span class="_ _d"> </span>纹<span class="_ _d"> </span>识<span class="_ _d"> </span>别<span class="_ _d"> </span>系<span class="_ _d"> </span>统<span class="_ _d"> </span>。</div><div class="t m0 x3 h5 y4f ff1 fs2 fc0 sc0 ls0 ws0">SensorCount<span class="ff3">、</span>SensorSN<span class="ff3">、</span>EngineV<span class="_ _2"></span>alid<span class="ff3">、</span>ImageHeight<span class="ff3">、</span>ImageWidt<span class="_ _0"></span>h<span class="_ _6"> </span><span class="ff3">等属性需在该函数被调用</span></div><div class="t m0 x3 h5 y50 ff3 fs2 fc0 sc0 ls0 ws0">后才能返回正确结果。返回值<span class="ff1">:</span></div><div class="t m0 x4 h5 y51 ff1 fs2 fc0 sc0 ls0 ws0">0 <span class="ff3">初始化成功</span></div><div class="t m0 x4 h5 y52 ff1 fs2 fc0 sc0 ls0 ws0">1 <span class="ff3">指纹识别驱动程序加载失败</span></div><div class="t m0 x4 h5 y53 ff1 fs2 fc0 sc0 ls0 ws0">2 <span class="ff3">没有连接指纹识别仪</span></div></div><div class="t m0 x5 h3 y20 ff1 fs0 fc0 sc0 ls0 ws0">3</div></div><div class="pi" data-data='{"ctm":[1.611850,0.000000,0.000000,1.611850,0.000000,0.000000]}'></div></div>