精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 论坛浏览速度太慢? 教你赚取精币 - 每日签到

谋生 求职/招聘- 论坛接单- 资源出售

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

搜索
订阅<精易模块>源码若快打码 快速★准确★稳定★便宜2017年好项目,每月多挣好多钱██【免费网络验证】无需服务器█收购所有量,所有粉,有量的速度来██打码兔秒杀一切验证码██
全国PPTP秒换IP 动态IP仅35元/月
若快打码 快速★准确★稳定★便宜
2017年好项目,每月多挣好多钱
██【易卡发卡平台】无需服务器█
收购所有量,所有粉,有量的速度来█打码兔答题 速度快 极稳定█
★滴滴答题★8元万码★分成任加★火眼答题-韩文日文-高质量答题
██免费网络验证 收款即时到帐█
云速打码全天50%分成★稳定★快速收购所有量,所有粉,有量的速度来收购一切流量☞QQ:503830000☜
┏高价收各种量,运营商,分光等┓
Thewolf语音验证码接收平台可API集团重金收量大量收购一切流量  995799457收购所有量,所有粉,有量的速度来
网吧加群空间转发逆向等qq;771112
┆       高价sp短信用户量       ┆
┏--长期收购各类成品引流软件--┓
集团重金收量
收网吧转发空间QQ:1513888885
收购所有量,所有粉,有量的速度来┏ °短信群发内容成功率百分百°┓
┆      收购各种游戏注册量     ┆
║ 长期收购针对性精准QQ人群 ║
集团重金收量
收网吧转发空间QQ:1513888885
收购所有量,所有粉,有量的速度来┃ °手机短信群发广告量找老板°┃
┆     联系qq:985013583    ┆
║    合作QQ:2665555557    ║
集团重金收量
┏██人傻钱多 QQ:753310██┓
收购所有量,所有粉,有量的速度来
┃ °短信内容不限制实力接单中°┃
┗------高价sp短信用户量-------┛
║ 长期诚聘各大引擎SEO合作  ║
集团重金收量
█ 收成品群/成品号/成品微信  █
收购所有量,所有粉,有量的速度来
┃  °一手卡发机房100%不扣量°┃
长期收购微信各种推广渠道
┗-收针对性人群引流加Q群流量┛
集团重金收量
█    收男粉/精准粉/网赚粉     █
收购所有量,所有粉,有量的速度来
┗低价出各类广告QQ:5690990┛
长期收购微信各种推广渠道
█Q群活人进群  适合炒群█
集团重金收量
█反正就是人傻钱多收各种活粉█
收购所有量,所有粉,有量的速度来
┏x58双路租机,模拟器24开  ┓
长期收购微信各种推广渠道
█出 网赚 精准粉 日出3000人█
集团重金收量
┗██  菲律宾集团诚招合作 ██┛
收购所有量,所有粉,有量的速度来
┗单进程单IP,最低15元一天 ┛
长期收购微信各种推广渠道
█q1360360520 欢迎骚扰█
集团重金收量
★熊猫人气★24小时自助平台★收购所有量,所有粉,有量的速度来┏实力收各种推广引流渠道和资源┓
长期收购微信各种推广渠道实力收微信引流各类推广渠道集团重金收量█NOW直播人气代挂Qq:5919620█收购所有量,所有粉,有量的速度来┃实力收各种推广引流渠道和资源┃
长期收购微信各种推广渠道
实力收微信引流各类推广渠道集团重金收量
找项目找资源就来晟博会点击加群
收购所有量,所有粉,有量的速度来┃实力收各种推广引流渠道和资源┃
长期收购微信各种推广渠道
实力收微信引流各类推广渠道集团重金收量
大量出售微信老号QQ907637
收购所有量,所有粉,有量的速度来┃实力收各种推广引流渠道和资源┃
长期收购微信各种推广渠道
实力收微信引流各类推广渠道
集团重金收量
常年收网吧/家庭量/人气号/独家项目
收购所有量,所有粉,有量的速度来
┃实力收各种推广引流渠道和资源┃
长期收购微信各种推广渠道
明年扩大规模
集团重金收量
常年收网吧/家庭量/人气号/独家项目收购所有量,所有粉,有量的速度来┃实力收各种推广引流渠道和资源┃
长期收购微信各种推广渠道
长期收各种引流资源
集团重金收量常年收网吧/家庭量/人气号/独家项目收购所有量,所有粉,有量的速度来┃实力收各种推广引流渠道和资源┃
长期收购微信各种推广渠道
急需作者一名
集团重金收量
常年收网吧/家庭量/人气号/独家项目收购所有量,所有粉,有量的速度来┃高价寻原生态APP开发上架高手┃
长期收购微信各种推广渠道
收各种引流思路
集团重金收量
常年收网吧/家庭量/人气号/独家项目收购所有量,所有粉,有量的速度来┃高价寻SEO优化高手介绍有红包┃
长期收购微信各种推广渠道
求贤若渴礼贤下士
集团重金收量大量租售各种qq小号 2892721932收购所有量,所有粉,有量的速度来┃实力收各种推广引流渠道和资源┃
长期收购微信各种推广渠道
国外财团诚邀引流技术大神合作集团重金收量收微信粉 QQ联系:2286852884收购所有量,所有粉,有量的速度来┃实力收各种推广引流渠道和资源┃
长期收购微信各种推广渠道
国外实力财团
集团重金收量
 ▇QQ实用软件技术▇不定时更新▇ 
收购所有量,所有粉,有量的速度来┃实力收各种推广引流渠道和资源┃
长期收购微信各种推广渠道
长期收网赚/男粉/精准粉集团重金收量长期出网吧量QQ:526661收购所有量,所有粉,有量的速度来┃实力收各种推广引流渠道和资源┃
长期收购微信各种推广渠道
收各种引流思路集团重金收量收购所有量,所有粉,有量的速度来收购所有量,所有粉,有量的速度来┃实力收各种推广引流渠道和资源┃
长期收购微信各种推广渠道
招募各路引流大神集团重金收量收购所有量,所有粉,有量的速度来收购所有量,所有粉,有量的速度来┃实力收各种推广引流渠道和资源┃
长期收购微信各种推广渠道
收购所有量,所有粉,有量的速度来集团重金收量收购所有量,所有粉,有量的速度来收购所有量,所有粉,有量的速度来┗实力收各种推广引流渠道和资源┛
长期收购微信各种推广渠道
收购所有量,所有粉,有量的速度来集团重金收量收购所有量,所有粉,有量的速度来收购所有量,所有粉,有量的速度来收购所有量,所有粉,有量的速度来
长期收购微信各种推广渠道
收购所有量,所有粉,有量的速度来集团重金收量收购所有量,所有粉,有量的速度来收购所有量,所有粉,有量的速度来收购所有量,所有粉,有量的速度来
长期收购微信各种推广渠道
无限收网吧量Q:345671
集团重金收量【蚂蚁收发验证平台可专属对接】收购所有量,所有粉,有量的速度来
█IP精灵█最强大的动态IP加速器
长期收购微信各种推广渠道
独家手机号转wxid,代加通讯录粉
集团重金收量
收购手机充值卡·卡密Q75939058
收购所有量,所有粉,有量的速度来
☆收微信公众号粉丝.日结
☆收微信公众号粉丝.日结
出微信老号加Q19551346
集团重金收量
OCR专业识别/通用文字/名片/手写
收购所有量,所有粉,有量的速度来长期无限收购女性Q好友微信好友
王者转盘量+Q3006306集团重金收量 我要租广告位   
查看: 383|回复: 3
收起左侧

[求助] 有关智能卡函数操作相关问题

[复制链接]
结帖率:56% (5/9)
发表于 2017-9-14 13:55:48 | 显示全部楼层 |阅读模式
最近没什么事,就想做一个用智能卡的会员管理系统,于是上网买了个读卡器,和几张智能卡,用来测试,acr22u比较便宜就买的它,可惜官方的开发包实在看不懂,但是发现这个支持windos的pc/sc,于是就去找智能卡函数的资料,可惜资料是英文的而且是c++的,看不懂,只能边百度翻译,边尝试理解,这个是第一步,百度翻译的是建立资源管理器句柄,我也不明白为什么这么叫,
SCardEstablishContext函数官方介绍
https://technet.microsoft.com/zh-cn/library/aa379479
  
DLL命令名返回值类型公开备 注
SCardEstablishContext长整数型 返回资源管理器上下文的句柄
DLL库文件名:
WinSCard.dll
在DLL库中对应命令名:
SCardEstablishContext
参数名类 型传址数组备 注
dwScope整数型  :SCARD_SCOPE_USER   0
pvReserved1整数型  null
pvReserved2整数型  null
phContext整数型 



上面的函数已经没问题了改写成易语言就是下面这个样子
  
子程序名返回值类型公开备 注
建立管理器整数型 
参数名类 型参考可空数组备 注
b  
c  
变量名类 型静态数组备 注
局资源管理器句柄整数型  
SCARD_S_SUCCESS整数型  
SCARD_S_SUCCESS = SCardEstablishContext ( #SCARD_SCOPE_SYSTEM, b, c, 局资源管理器句柄)
调试输出 (SCARD_S_SUCCESS)
返回 (局资源管理器句柄)


i支持库列表   支持库注释   
spec特殊功能支持库
这个已经正常因为整数型的null不知道如何表达,就就建了两个参数然后不填写,
获得资源管理器的句柄,下面会用到
第二步获取系统中读卡器的列表SCardListReaders
函数介绍https://msdn.microsoft.com/en-us/library/windows/desktop/aa379793(v=vs.85).aspx
了解这个的时候发现有两个一个SCardListReadersA一个SCardListReadersW,百度了一下才是到分别是A=ansi然后w=unicode
好像原来听说过易不支持unicode所以最后用了SCardListReadersA
  
DLL命令名返回值类型公开备 注
SCardListReaders整数型 获得系统中安装的读卡器列表
DLL库文件名:
WinSCard.dll
在DLL库中对应命令名:
SCardListReadersA
参数名类 型传址数组备 注
hContex整数型  资源管理器上下文的句柄
mszGroups文本型  mszGroups:输入类型;读卡器组名,为NULL时,表示列出所有读卡器。
mszReaders文本型 mszReaders:输出类型;系统中安装的读卡器的名字
pcchReaders整数型 pcchReaders:输入输出类型;mszReaders的长度。

到这步已经开始出现问题了,
  
子程序名返回值类型公开备 注
获得列表  
变量名类 型静态数组备 注
啊啊整数型  
SCARD_S_SUCCESS整数型  
长度整数型  
SCARD_READERSTATE文本型  
列表文本型  
调试输出 (SCardListReaders (建立管理器 (), “”, SCARD_READERSTATE, 长度))
调试输出 (“----”)
调试输出 (SCARD_READERSTATE)
调试输出 (长度)


i支持库列表   支持库注释   
spec特殊功能支持库
看函数介绍翻译SCARD_READERSTATE就应该是返回的读卡器名字,“长度”返回名字字节数,但是调试后返回SCARD_READERSTATE返回空,字节数返回14
我怕错所以把读卡器拔了又重新获取了一次,长度变为0,SCARD_READERSTATE依然是空,我就感觉这个参数错了,可能是个结构数据,但是我不知道具体什么样,也不知道成员有什么,成员是文本型还是整数型,没有读卡器名字就无法发送数据,数据结构第一次解决不了,下面的问题还是另一个数据结构搞不懂,
获取不到读卡器名字怎么办呢,我想到了一个办法,从别人已经写好的程序里获取名字,
http://bbs.eyuyan.com/read.php?tid=395095这个帖子里的dome程序,是可以操作我的读卡器的,于是直接从他这里复制读卡器名字获得“ACS ACR122 0”这个名字,下面会用到。
第三步,建立连接,获取智能卡的句柄SCardConnect
官方函数介绍https://msdn.microsoft.com/en-us/library/windows/desktop/aa379473(v=vs.85).aspx

  
DLL命令名返回值类型公开备 注
SCardConnectA长整数型建立与智能卡的连接
DLL库文件名:
WinSCard.dll
在DLL库中对应命令名:
SCardConnectA
参数名类 型传址数组备 注
hContext整数型  输入类型;ScardEstablishContext()建立的资源管理器上下文的句柄。
szReader文本型  ,输入类型;包含智能卡的读卡器名称(读卡器名称由ScardListReaders()给出)
dwShareMode整数型  ,dwShareMode:输入类型;应用程序对智能卡的操作方式,SCARD_SHARE_SHARED(多个应用共享同一个智能卡)、SCARD_SHARE_EXCLUSIVE(应用独占智能卡)、SCARD_SHARE_DIRECT(应用将智能卡作为私有用途,直接操纵智能卡,不允许其它应用访问智能卡)。
dwPreferredProtocols整数型  ,dwPreferredProtocols:输入类型;连接使用的协yi,SCARD_PROTOCOL_T0(使用T=0协yi)、SCARD_PROTOCOL_T1(使用T=1协yi)。
phCard整数型 phCard:输出类型;与智能卡连接的句柄。
PdwActiveProtocol整数型 PdwActiveProtocol:输出类型;实际使用的协yi。


易语言调用这个是为一个比较顺利的函数了,第二个参数读卡器名称,我获取不到,直接填入从别人那里获取的,
  
子程序名返回值类型公开备 注
建立连接1整数型 
变量名类 型静态数组备 注
管理器句柄整数型  
智能卡句柄整数型  
协yi整数型  
管理器句柄 = 建立管理器 ()
调试输出 (SCardConnectA (读卡器句柄, “ACS ACR122 0”, #SCARD_SHARE_SHARED, #SCARD_PROTOCOL_T1, 智能卡句柄, 协yi))
返回 (智能卡句柄)


i支持库列表   支持库注释   
spec特殊功能支持库

获得智能卡句柄,下面函数会用到
第四步,发送数据并接受返回数据SCardTransmit
官方函数介绍
https://msdn.microsoft.com/en-us/library/windows/desktop/aa379804(v=vs.85).aspx
  
DLL命令名返回值类型公开备 注
SCardTransmit整数型 向智能卡发送指令,并接受返回的数据。
DLL库文件名:
WinSCard.dll
在DLL库中对应命令名:
SCardTransmit
参数名类 型传址数组备 注
hCard整数型  ,hCard:输入类型;与智能卡连接的句柄。
pioSendPci整数型  ,pioSendPci:输入类型;指令的协yi头结构的指针,由SCARD_IO_REQUEST结构定义。后面是使用的协yi的协yi控制信息。一般使用系统定义的结构,SCARD_PCI_T0(T=0协yi)、 SCARD_PCI_T1(T=1协yi)、SCARD_PCI_RAW(原始协yi)。
pbSendBuffer文本型 ,pbSendBuffer:输入类型;要发送到智能卡的数据的指针。(
cbSendLength整数型  ,cbSendLength:输入类型;pbSendBuffer的字节数目。
pioRecvPci文本型 pioRecvPci:输入输出类型;指令协yi头结构的指针,后面是使用的协yi的协yi控制信息,如果不返回协yi控制信息,可以为NULL。
pbRecvBuffer文本型 pbRecvBuffer:输入输出类型;从智能卡返回的数据的指针。
pcbRecvLength整数型 pcbRecvLength:输入输出类型;pbRecvBuffer的大小和实际大小。


易语言调用
  
子程序名返回值类型公开备 注
_按钮1_被单击  
变量名类 型静态数组备 注
数据APDU  
数据.CLA = 到字节 (十六进制 (“ff”))
数据.ins = 到字节 (十六进制 (“00”))
数据.p1 = 到字节 (十六进制 (“40”))
数据.p2 = 到字节 (十六进制 (“06”))
数据.le = 到字节 (十六进制 (“04”))
数据.p3 = 到字节 (十六进制 (“05050801”))
' 上面数据结构自己编 的感觉不对就没有那个
智能卡发送指令 (集智能卡句柄, “FF 00 40 0F 04 00 00 00 00h”)
子程序名返回值类型公开备 注
智能卡发送指令  
参数名类 型参考可空数组备 注
智能卡句柄整数型   
APDU内容文本型   APDU = “FF 00 40 50 04 05 05 03 01h”   红灯闪烁
啊啊整数型  
变量名类 型静态数组备 注
a文本型  
b文本型  
c整数型  
调试输出 (SCardTransmit (智能卡句柄, 2, APDU内容, 取文本长度 (APDU内容) - 1, a, b, c))
' 如果返回“6”,则是智能卡句柄错误
调试输出 (a, b, c, 取文本长度 (APDU内容), 智能卡句柄)


i支持库列表   支持库注释   
spec特殊功能支持库
到这又遇到一个数据结构问题,就是第3个参数,“APDU”看翻译应该也是一个数据结构,但是我还是看不懂c++的那种翻译到易语言什么样子,。
我翻过的资料地址

这个是偶尔返回错误代码的解释,比如6句柄错误,1734,数据边界错误
http://www.cnblogs.com/braver/articles/2563157.html
函数错误代码介绍,易语言需要用计算器算一下返回的代码十进制转十六进制再到下面去找错误代码介绍,比如“-2146435068”=“0x80100004”:一个或多个参数错误
https://msdn.microsoft.com/en-us/library/windows/desktop/aa374738(v=vs.85).aspx#smart_card_return_values

以上内容主要参考这两个,但是这个是vb的,唉,易语言这方面资料太少了
http://blog.sina.com.cn/s/blog_a20257d80102uy9u.html
http://www.cnblogs.com/android-html5/archive/2010/09/01/2533989.html


现在想问问有谁研究过这方面的资料源码,能不能分享一下,或者能知道获取列表的数据结构和发送数据的数据结构在易语言里什么样子,,如果看到我上面有什么错误麻烦指出来,我好继续改。
下面是我用到的资料文件以及我暂时写的源码。








结帖率:56% (5/9)
 楼主| 发表于 2017-9-14 14:01:05 | 显示全部楼层
这里是资料附件 资读卡器料.zip (2.89 MB, 下载次数: 7)
回复

使用道具 举报

结帖率:100% (3/3)
发表于 2017-9-14 14:25:15 | 显示全部楼层
哇 感觉像是在看定制单
回复

使用道具 举报

发表于 2017-12-29 12:54:57 | 显示全部楼层
有源码吗?
回复

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

关闭

精易论坛 - 有你更精彩上一条 /1 下一条

快速回复 收藏帖子 返回列表

sitemap|易语言源码|易语言教程|易语言论坛|诚聘英才|易语言模块|手机版|联系我们|精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.2 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125

快速回复 返回顶部 返回列表