标题:请教如何实现华视身份证读卡器自动读卡!
只看楼主
jsddx
Rank: 2
等 级:论坛游民
帖 子:42
专家分:21
注 册:2006-4-11
结帖率:100%
已结贴  问题点数:20 回复次数:10 
请教如何实现华视身份证读卡器自动读卡!
各位老师,请教如何实现华视身份证读卡器自动读取身份证信息!

谢谢

dll.rar (167.23 KB)
搜索更多相关主题的帖子: 自动 老师 身份证 读取 信息 
2021-04-22 09:30
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:10 
没有开发文档吗? 没有的话,只能猜测一下,
大致是sdtapi.dll 先打开端口,图1这个

然后用termb.dll 读取数据,图2这几个函数.

可能还有其它的伴随动作,具体要查他给的说明才行.
否则这些函数有哪些参数都不知道,你也无法正确的调用.
先默认这些函数都是无参数的吧,先试了再说.

2021-04-22 09:53
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:0 
用官网上的sdk包其中应该有说明文档,联系客服应该有帮助。以前做过中新的应用,联系客服给了很详细的说明。

[此贴子已经被作者于2021-4-22 10:03编辑过]


dBase有人接盘了。
2021-04-22 09:57
jsddx
Rank: 2
等 级:论坛游民
帖 子:42
专家分:21
注 册:2006-4-11
得分:0 
回复 2楼 厨师王德榜
谢谢,有文档
身份证阅读器SDK使用手册.rar (14.26 KB)
2021-04-22 09:59
jsddx
Rank: 2
等 级:论坛游民
帖 子:42
专家分:21
注 册:2006-4-11
得分:0 
回复 3楼 xuminxz
谢谢
2021-04-22 10:00
瓜瓜1990
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:18
帖 子:125
专家分:699
注 册:2020-2-25
得分:0 
参考他们网站上对应型号读卡器的开发包里的函数说明,用declare命令声明链接库的函数,调用函数读取信息
函数调用流程
初始化->卡认证->读卡->函数取信息->关闭连接


[此贴子已经被作者于2021-4-22 10:20编辑过]


piu~piu~
2021-04-22 10:19
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 
按SDK使用手册说的试试
假设DLL文件在默认路径
程序代码:
CLEAR
CLEAR ALL
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)

#DEFINE COM1    1
#DEFINE COM2    2
#DEFINE COM3    3
#DEFINE COM4    4
#DEFINE USB1    1001
#DEFINE USB2    1002
#DEFINE USB3    1003
#DEFINE USB4    1004

DECLARE LONG CVR_InitComm      IN termb.dll LONG             && 初始化连接
DECLARE LONG CVR_Authenticate  IN termb.dll                  && 卡认证
DECLARE LONG CVR_Read_Content  IN termb.dll LONG             && 读卡操作
DECLARE LONG CVR_CloseComm     IN termb.dll                  && 关闭连接;
DECLARE LONG CVR_GetSAMID      IN termb.dll STRING@          && 得到安全模块号
DECLARE LONG GetPeopleName     IN termb.dll STRING@,LONG@    && 得到姓名信息    
DECLARE LONG GetPeopleSex      IN termb.dll STRING@,LONG@    && 得到性别信息    
DECLARE LONG GetPeopleNation   IN termb.dll STRING@,LONG@    && 得到民族信息    
DECLARE LONG GetPeopleBirthday IN termb.dll STRING@,LONG@    && 得到出生日期    
DECLARE LONG GetPeopleAddress  IN termb.dll STRING@,LONG@    && 得到地址信息    
DECLARE LONG GetPeopleIDCode   IN termb.dll STRING@,LONG@    && 身份证号信息
DECLARE LONG GetDepartment     IN termb.dll STRING@,LONG@    && 得到发证机关信息
DECLARE LONG GetStartDate      IN termb.dll STRING@,LONG@    && 得到有效开始日期    
DECLARE LONG GetEndDate        IN termb.dll STRING@,LONG@    && 得到有效截止日期

ret = CVR_InitComm(USB1)    && 假设用USB1口连接设备
IF ret != 1
    ? IIF(ret==0, "动态库加载失败", "端口打开失败")
    *RETURN
ENDIF

ret = CVR_Authenticate()
IF ret != 1
    ? ICASE(ret==2,"寻卡失败", ret==3,"选卡失败", "初始化失败")
    *RETURN
ENDIF

ret = CVR_Read_Content(0)
IF ret != 1
    ? IIF(ret==0, "错误", "异常")
    *RETURN
ENDIF

cBuf = SPACE(256)
nLen = 0

GetPeopleName(@cBuf, @nLen)
? "姓名", LEFT(cBuf, nLen)
GetPeopleSex(@cBuf, @nLen)
? "性别", LEFT(cBuf, nLen)
GetPeopleNation(@cBuf, @nLen)
? "民族", LEFT(cBuf, nLen)
GetPeopleBirthday(@cBuf, @nLen)
? "出生日期", LEFT(cBuf, nLen)
GetPeopleAddress(@cBuf, @nLen)
? "地址", LEFT(cBuf, nLen)
GetPeopleIDCode(@cBuf, @nLen)
? "卡号", LEFT(cBuf, nLen)
GetDepartment(@cBuf, @nLen)
? "发证机关", LEFT(cBuf, nLen)
GetStartDate(@cBuf, @nLen)
? "有效开始日期", LEFT(cBuf, nLen)
GetEndDate(@cBuf, @nLen)
? "有效截止日期", LEFT(cBuf, nLen)

** 或者读 wz.txt
**    张红叶
******    1988-11-18
**    河北省邯郸市临漳县称勾镇称勾东村复兴路25号
**    130423198811184328
**    临漳县公安局
**    2011.03.30-2021.03.30

IF ALINES(arr,FILETOSTR("wz.txt")) < 8
    ? "wz.txt 文件无效"
ENDIF

? "姓名", arr[1]
? "性别", arr[2]
? "民族", arr[3]
? "出生日期", arr[4]
? "地址", arr[5]
? "卡号", arr[6]
? "发证机关", arr[7]
? "有效日期", arr[8]

CVR_CloseComm()

2021-04-22 11:32
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
得分:0 
以下是引用吹水佬在2021-4-22 11:32:16的发言:

按SDK使用手册说的试试
假设DLL文件在默认路径

CLEAR
CLEAR ALL
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)

#DEFINE COM1    1
#DEFINE COM2    2
#DEFINE COM3    3
#DEFINE COM4    4
#DEFINE USB1    1001
#DEFINE USB2    1002
#DEFINE USB3    1003
#DEFINE USB4    1004

DECLARE LONG CVR_InitComm      IN termb.dll LONG             && 初始化连接
DECLARE LONG CVR_Authenticate  IN termb.dll                  && 卡认证
DECLARE LONG CVR_Read_Content  IN termb.dll LONG             && 读卡操作
DECLARE LONG CVR_CloseComm     IN termb.dll                  && 关闭连接;
DECLARE LONG CVR_GetSAMID      IN termb.dll STRING@          && 得到安全模块号
DECLARE LONG GetPeopleName     IN termb.dll STRING@,LONG@    && 得到姓名信息   
DECLARE LONG GetPeopleSex      IN termb.dll STRING@,LONG@    && 得到性别信息   
DECLARE LONG GetPeopleNation   IN termb.dll STRING@,LONG@    && 得到民族信息   
DECLARE LONG GetPeopleBirthday IN termb.dll STRING@,LONG@    && 得到出生日期   
DECLARE LONG GetPeopleAddress  IN termb.dll STRING@,LONG@    && 得到地址信息   
DECLARE LONG GetPeopleIDCode   IN termb.dll STRING@,LONG@    && 身份证号信息
DECLARE LONG GetDepartment     IN termb.dll STRING@,LONG@    && 得到发证机关信息
DECLARE LONG GetStartDate      IN termb.dll STRING@,LONG@    && 得到有效开始日期   
DECLARE LONG GetEndDate        IN termb.dll STRING@,LONG@    && 得到有效截止日期

ret = CVR_InitComm(USB1)    && 假设用USB1口连接设备
IF ret != 1
    ? IIF(ret==0, "动态库加载失败", "端口打开失败")
    *RETURN
ENDIF

ret = CVR_Authenticate()
IF ret != 1
    ? ICASE(ret==2,"寻卡失败", ret==3,"选卡失败", "初始化失败")
    *RETURN
ENDIF

ret = CVR_Read_Content(0)
IF ret != 1
    ? IIF(ret==0, "错误", "异常")
    *RETURN
ENDIF

cBuf = SPACE(256)
nLen = 0

GetPeopleName(@cBuf, @nLen)
? "姓名", LEFT(cBuf, nLen)
GetPeopleSex(@cBuf, @nLen)
? "性别", LEFT(cBuf, nLen)
GetPeopleNation(@cBuf, @nLen)
? "民族", LEFT(cBuf, nLen)
GetPeopleBirthday(@cBuf, @nLen)
? "出生日期", LEFT(cBuf, nLen)
GetPeopleAddress(@cBuf, @nLen)
? "地址", LEFT(cBuf, nLen)
GetPeopleIDCode(@cBuf, @nLen)
? "卡号", LEFT(cBuf, nLen)
GetDepartment(@cBuf, @nLen)
? "发证机关", LEFT(cBuf, nLen)
GetStartDate(@cBuf, @nLen)
? "有效开始日期", LEFT(cBuf, nLen)
GetEndDate(@cBuf, @nLen)
? "有效截止日期", LEFT(cBuf, nLen)

** 或者读 wz.txt
**    张红叶
**    女
**    汉
**    1988-11-18
**    河北省邯郸市临漳县称勾镇称勾东村复兴路25号
**    130423198811184328
**    临漳县公安局
**    2011.03.30-2021.03.30

IF ALINES(arr,FILETOSTR("wz.txt")) < 8
    ? "wz.txt 文件无效"
ENDIF

? "姓名", arr[1]
? "性别", arr[2]
? "民族", arr[3]
? "出生日期", arr[4]
? "地址", arr[5]
? "卡号", arr[6]
? "发证机关", arr[7]
? "有效日期", arr[8]

CVR_CloseComm()

2021-04-22 11:45
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
@吹水版主,高!
2021-04-22 16:40
wangjiayu45
Rank: 1
等 级:新手上路
帖 子:187
专家分:0
注 册:2010-4-23
得分:0 
我有写好了的华视读卡程序
2021-04-25 11:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-505534-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.111012 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved