2010-06-03 tips

一、URU4000B

URU4000B在程序里的关系是这样的:程序->biokey.ocx->Driver->URU4000B。biokey.ocx是ActiveX,即所谓的SDK。我试过直接引用这个文件,但不成功,所以只能注册后引用COM。使用它并不算难,主类是ZKPEngX,它有这么几个属性可能用的着:

Active、
EngineValid、
EnrollCount、
EnrollIndex、
IsRegister、
SensorCount、
SensorIndex。

比较有用的方法有:

InitEngine()、
BeginEnroll()、
EndEngine()、
GetTemplateAsString()、
PrintImageAt()、
SaveJPG()、
VerFingerFromStr()。

一定会用到的事件有:

OnCapture、
OnEnroll、
OnFeatureInfo、
OnImageReceived。

在使用的过程中发现两个状况:
1,我每次登记完和验证完后都调用EndEngine()方法来释放设备,当如此几次后,CPU占用率升至50%,系统反映慢。
2,后来我改在加载窗口时调用InitEngine()来初始化设备,并且整个窗口类里都没有调用EndEngine()来释放设备,结果第二次打开窗口的时候,设备会不工作。

二、条码

我原来的条码使用的是Code128,打印软件是Bartender,全手工操作。

现在想实现程序自动打印条码,刚开始的想法是去找免费的条码SDK,集成在程序里。于是在网上找了一阵子,倒是找到了两个,但是限制太多,等于没用。

后来突然想到一个折中的办法,使用Portable型的打印软件,并制作好标签文件,里面设置好从Excel文件读取数据,然后在程序里生成这个Excel数据文件,最后调用打印软件打开标签文件。

另外,条码编码改用code128c,因为它更便于扫描。