📄 mduscreader.bas
字号:
Attribute VB_Name = "mduSCReader"
Option Explicit
Public Const ICCTYPE_ASYNC = 0
Public Const ICCTYPE_SYNC = 1
Public Const ICCTYPE_SLE4442 = 2
Public Const ICCTYPE_SLE4428 = 3
Public Const ICCTYPE_SC1604 = 4
Public Const ICCTYPE_AT24 = 5
Public Const ICCTYPE_INVALID = &HFE
Public Const ICCTYPE_UNKNOWN = &HFF
Public Const ICCSUBTYPE_AT24C01 = 0
Public Const ICCSUBTYPE_AT24C02 = 1
Public Const ICCSUBTYPE_AT24C04 = 2
Public Const ICCSUBTYPE_AT24C08 = 3
Public Const ICCSUBTYPE_AT24C16 = 4
Public Const ICCSUBTYPE_AT24C32 = 5
Public Const ICCSUBTYPE_AT24C64 = 6
Public Const ICCSUBTYPE_AT24C128 = 7
Public Const ICCSUBTYPE_AT24C256 = 8
Public Const ICCSUBTYPE_AT24C512 = 9
Public Const ICCSUBTYPE_SC1604N = 0
Public Const ICCSUBTYPE_SC1604E = 1
Public Const SCPROT_T0 = 0
Public Const SCPROT_T1 = 1
Public Const SC1604ZONE_FZ = 0
Public Const SC1604ZONE_IZ = 1
Public Const SC1604ZONE_SC = 2
Public Const SC1604ZONE_SCAC = 3
Public Const SC1604ZONE_CPZ = 4
Public Const SC1604ZONE_SC1 = 5
Public Const SC1604ZONE_S1AC = 6
Public Const SC1604ZONE_EZ1 = 7
Public Const SC1604ZONE_E1AC = 8
Public Const SC1604ZONE_AZ1 = 9
Public Const SC1604ZONE_SC2 = 10
Public Const SC1604ZONE_S2AC = 11
Public Const SC1604ZONE_EZ2 = 12
Public Const SC1604ZONE_E2AC = 13
Public Const SC1604ZONE_AZ2 = 14
Public Const SC1604ZONE_SC3 = 15
Public Const SC1604ZONE_S3AC = 16
Public Const SC1604ZONE_EZ3 = 17
Public Const SC1604ZONE_E3AC = 18
Public Const SC1604ZONE_AZ3 = 19
Public Const SC1604ZONE_SC4 = 20
Public Const SC1604ZONE_S4AC = 21
Public Const SC1604ZONE_EZ4 = 22
Public Const SC1604ZONE_E4AC = 23
Public Const SC1604ZONE_AZ4 = 24
Public Const SC1604ZONE_MTZ = 25
Public Const SC1604ZONE_FUSE = 26
'通用读写器函数错误代码
Public Const ERR_SCARD_UNSUPPORT = &H401
Public Const ERR_SCARD_FORMAT = &H402
Public Const ERR_SCARD_PARAMS = &H403
Public Const ERR_SCARD_CARDTYPE = &H404
Public Const ERR_SCARD_POWER = &H405
Public Const ERR_SCARD_SLOT = &H406
Public Const ERR_SCARD_SESSION = &H407
Public Const ERR_SCARD_PROTOCOL = &H408
Public Const ERR_SCARD_WRITELEN = &H40A
Public Const ERR_SCARD_READ = &H40B
Public Const ERR_SCARD_WRITE = &H4C
Public Const ERR_SCARD_TIMEOUT = &H40E
Public Const ERR_SCARD_OVERHOT = &H40F
Public Const ERR_SCARD_VERIFY = &H421
Public Const ERR_SCARD_NOPOWER = &H4FD
Public Const ERR_SCARD_NOCARD = &H4FF
'Mifare1错误代码
Public Const MI_NOTAGERR = &H3FF '操作区无卡
Public Const MI_CRCERR = &H3FE 'CRC校验错
Public Const MI_EMPTY = &H3FD '数值溢出
Public Const MI_AUTHERR = &H3FC '认证失败
Public Const MI_PARITYERR = &H3FB '奇偶校验错
Public Const MI_CORDERR = &H3FA '与卡的通讯发生错误
Public Const MI_SERNRERR = &HF8 '防冲突过程中读到错误的卡号
Public Const MI_KEYERR = &HF7 '密码错误
Public Const MI_NOTAUTHERR = &HF6 '卡未经过认证
Public Const MI_BITCOUNTERR = &HF5 '从卡接收到的数据位数错误
Public Const MI_BYTECOUNTERR = &HF4 '从卡接收到的数据字节数错误
Public Const MI_IDLE = &HF3 'IDLE指令激活
Public Const MI_TRANSERR = &HF2 '传输操作后无应答
Public Const MI_WRITEERR = &HF1 '写操作后无应答
Public Const MI_INCRERR = &HF0 '增值操作后无应答
Public Const MI_DECRERR = &H3EF '减值操作后无应答
Public Const MI_READERR = &H3EE '读操作后无应答
Public Const MI_OVFLERR = &H3ED 'FIFO溢出
Public Const MI_POLLING = &H3EC '轮巡检测不正确
Public Const MI_FRAMINGERR = &H3EB 'Mifare射频帧起始位无效
Public Const MI_ACCESSERR = &H3EA 'Mifare模块超时
Public Const MI_UNKNOWN_COMMAND = &H3E9 '未知指令
Public Const MI_RESETERR = &H3E8 'Mifare模块复位错误
Public Const MI_INITERR = &H3E7 'Mifare模块初始化错误
Public Const MI_INTERFACEERR = &H3E6 'Mifare模块响应不正确
Public Const MI_ACCESSTIMEOUT = &H3E5 'Mifare模块无应答
Public Const MI_NOBITMSEANTICOLL = &H3E4 '卡不支持防冲突位逻辑
Public Const MI_RECBUF_OVERFLOW = &H3CE 'Mifare模块接收缓冲区溢出
Public Const MI_SENDBYTENR = &H3CD 'Mifare模块发送字节数错误
Public Const MI_SENDBUF_OVERFLOW = &H3CB 'Mifare模块发送溢出
Public Const MI_BAUDRATE_NOT_SUPPORTED = &H3CA 'Mifare模块波特率错误
Public Const MI_SAME_BAUDRATE_NOT_SUPPORTED = &H3C9 '发送和接收处在相同波特率
Public Const MI_WRONG_PARAMETER_VALUE = &H3C4 '功能参数错误
Public Const MI_NY_IMPLEMENTED = &H39C '功能未实现
Public Const MI_NO_MFRC = &H39B '硬件版本不正确
Public Const MI_MFRC_NOTAUTH = &H39A 'Mifare模块认证失败
Public Const MI_WRONG_DES_MODE = &H399 '错误的DES模式
Public Const MI_HOST_AUTH_FAILED = &H398 '主机认证失败
Public Const MI_WRONG_LOAD_MODE = &H396 '错误的载入模式
Public Const MI_WRONG_DESKEY = &H395 'DES密钥错,最低位非零
Public Const MI_MKLOAD_FAILED = &H394 '密钥存取被拒绝
Public Const MI_FIFOERR = &H393 'FIFO处错
Public Const MI_WRONG_ADDR = &H392 '错误的地址
Public Const MI_DESKEYLOAD_FAILED = &H391 'DES密钥载入失败
Public Const MI_WRONG_SEL_CNT = &H38E '计数器无效
Public Const MI_WRONG_TEST_MODE = &H38B '错误的测试模式
Public Const MI_TEST_FAILED = &H38A 'Mifare模块自检失败
Public Const MI_TOC_ERROR = &H389 '超时计数器出错
Public Const MI_COMM_ABOUT = &H388 'Mifare模块通讯失败
Public Const MI_INVALID_BASE = &H387 '错误的Mifare模块基地址
Public Const MI_MFRC_RESET = &H386 'Mifare模块忙/复位中
Public Const MI_WRONG_VALUE = &H385 '传递的值错误
Public Const MI_VALERR = &H384 '数值格式错误
Public Const MI_WRONG_MAC_TOKEN = &H36B '错误的MAC令牌
Public Const MI_WRONG_TOKEN = &H36A '错误的令牌
Public Const MI_NO_VALUE = &H369 '数值格式错误
Public Const MI_MFRC150 = &H368 'RC150被检测
Public Const MI_MFRC170 = &H367 'RC170被检测
Public Const MI_WRONG_BASEADDR = &H34C 'IO口地址错误
Public Const MI_NOERROR_TEXT_AVAIL = &H339 '无效的错误码
'通用读写器函数
'SCREADER_API DWORD SC_OpenReader(LPCTSTR lpPort,LPCTSTR lpParams);
Public Declare Function SC_OpenReader Lib "SCReader.dll" (ByVal strPort As String, ByVal strParams As String) As Long
'SCREADER_API void SC_CloseReader(DWORD hPort);
Public Declare Sub SC_CloseReader Lib "SCReader.dll" (ByVal hPort As Long)
'SCREADER_API BOOL SC_SendCommand(DWORD hPort,BYTE* pInBuf,DWORD dwInLen,BYTE* pOutBuf,DWORD* pdwOutLen);
Public Declare Function SC_SendCommand Lib "SCReader.dll" (ByVal hPort As Long, pInbuf As Byte, ByVal dwInLen As Long, pOutBuf As Byte, dwOutLen As Long) As Long
'SCREADER_API DWORD SC_GetLastError();
Public Declare Function SC_GetLastError Lib "SCReader.dll" () As Long
'SCREADER_API BOOL SC_Connect(DWORD hPort,LPCTSTR pCardType,LPCTSTR pParams,BYTE* pAtr);
Public Declare Function SC_Connect Lib "SCReader.dll" (ByVal hPort As Long, ByVal pCardType As String, ByVal pParams As String, pAtr As Byte) As Long
'SCREADER_API BOOL SC_DisConnect(DWORD hPort,DWORD dwMode);
Public Declare Function SC_DisConnect Lib "SCReader.dll" (ByVal hPort As Long, ByVal dwMode As Long) As Long
'SCREADER_API BOOL WINAPI SC_SelectSlot(long hPort,long dwSlot);
Public Declare Function SC_SelectSlot Lib "SCReader.dll" (ByVal hPort As Long, ByVal dwSlot As Long) As Long
'SCREADER_API long WINAPI SC_GetCurrentSlot(long hPort);
Public Declare Function SC_GetCurrentSlot Lib "SCReader.dll" (ByVal hPort As Long) As Long
'SCREADER_API BOOL SC_SetCardType(DWORD hPort,DWORD dwCardType);
Public Declare Function SC_SetCardType Lib "SCReader.dll" (ByVal hPort As Long, ByVal dwCardType As Long) As Long
'SCREADER_API BOOL WINAPI SC_GetCardType(long hPort,long* pCardType);
Public Declare Function SC_GetCardType Lib "SCReader.dll" (ByVal hPort As Long, dwCardType As Long) As Long
'SCREADER_API BOOL WINAPI SC_CheckPort(long hPort);
Public Declare Function SC_CheckPort Lib "SCReader.dll" (ByVal hPort As Long) As Long
'long SC_AutoTest(long hPort,LPCTSTR pParams);
Public Declare Function SC_AutoTest Lib "SCReader.dll" (ByVal hPort As Long, ByVal pParams As String) As Long
'SLE4442操作函数
'SCREADER_API BOOL SC4442_Read(DWORD hPort,DWORD dwAddr,BYTE* pDataBuf, DWORD dwLen);
Public Declare Function SC4442_Read Lib "SCReader.dll" (ByVal hPort As Long, ByVal dwAddr As Long, pDataBuf As Byte, ByVal dwLen As Long) As Long
Public Declare Function SC4442_ReadStr Lib "SCReader.dll" Alias "SC4442_Read" (ByVal hPort As Long, ByVal dwAddr As Long, ByVal pDataBuf As String, ByVal dwLen As Long) As Long
'SCREADER_API BOOL SC4442_Write(DWORD hPort,DWORD dwAddr,BYTE* pDataBuf,DWORD dwLen);
Public Declare Function SC4442_Write Lib "SCReader.dll" (ByVal hPort As Long, ByVal dwAddr As Long, pDataBuf As Byte, ByVal dwLen As Long) As Long
Public Declare Function SC4442_WriteStr Lib "SCReader.dll" Alias "SC4442_Write" (ByVal hPort As Long, ByVal dwAddr As Long, ByVal pDataBuf As String, ByVal dwLen As Long) As Long
'SCREADER_API BOOL SC4442_ReadLockBit(DWORD hPort,DWORD dwAddr,BYTE* pBuf);
Public Declare Function SC4442_ReadLockBit Lib "SCReader.dll" (ByVal hPort As Long, pDataBuf As Byte) As Long
'SCREADER_API BOOL SC4442_WriteLockBit(DWORD hPort,DWORD dwAddr,BYTE* pDataBuf,DWORD dwLen);
Public Declare Function SC4442_WriteLockBit Lib "SCReader.dll" (ByVal hPort As Long, ByVal dwAddr As Long, pDataBuf As Byte, ByVal dwLen As Long) As Long
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -