详细代码如下(如有疑问可13826029618进行相关提问并解答)
'广州荣士电子,,定制13826029618 地址:--www.icmcu.com
'读卡函数声明
Private Declare Function idr_read Lib "OUR_IDR.dll" (ByVal serial As Long) As Byte
'读卡函数声明,仅读一次,重新取放卡才能读到第二次
Private Declare Function idr_read_once Lib "OUR_IDR.dll" (ByVal serial As Long) As Byte
'让设备发出声响函数声明
Private Declare Function idr_beep Lib "OUR_IDR.dll" (ByVal xms As Long) As Byte
'读取设备编号函数声明
Private Declare Function pcdgetdevicenumber Lib "OUR_IDR.dll" (ByVal devicenumber As Long) As Byte
Private Sub Command1_Click()
'轻松读卡
'技术支持:
'网站:
Dim status As Byte '存放返回值
Dim idserial(0 To 4) As Byte '//卡数据缓冲
status = idr_read(VarPtr(idserial(0)))
'//在下面设定断点,然后查看idserial
'//开发人员根据自己的需要处理idserial中的数据了。
'//处理返回函数
Select Case status
Case 0:
MsgBox ("读卡成功,卡号为" + Hex(idserial(0)) + "-" + Hex(idserial(1)) + "-" + Hex(idserial(2)) + "-" + Hex(idserial(3)) + "-" + Hex(idserial(4)))
Case 8:
MsgBox "请将卡放在感应区"
Case 23:
MsgBox "机器没连上,或驱动程序未安装!"
Case Else
MsgBox "异常"
End Select
' //返回解释
'
' #define ERR_REQUEST 8//寻不到卡
'
' #define ERR_NONEDLL 21//没有动态库
' #define ERR_DRIVERORDLL 22//动态库或驱动程序异常
' #define ERR_DRIVERNULL 23//驱动程序错误或尚未安装
' #define ERR_TIMEOUT 24//操作超时,一般是动态库没有反映
' #define ERR_TXSIZE 25//发送字数不够
' #define ERR_TXCRC 26//发送的CRC错
' #define ERR_RXSIZE 27//接收的字数不够
' #define ERR_RXCRC 28//接收的CRC错
End Sub
Private Sub Command2_Click()
'轻松读卡
'技术支持:
'网站:
Dim status As Byte '存放返回值
Dim idserial(0 To 4) As Byte '//卡数据缓冲
status = idr_read_once(VarPtr(idserial(0)))
'//在下面设定断点,然后查看idserial
'//开发人员根据自己的需要处理idserial中的数据了。
'//处理返回函数
Select Case status
Case 0:
MsgBox ("读卡成功,卡号为" + Hex(idserial(0)) + "-" + Hex(idserial(1)) + "-" + Hex(idserial(2)) + "-" + Hex(idserial(3)) + "-" + Hex(idserial(4)))
Case 8:
MsgBox "请将卡放在感应区"
Case 23:
MsgBox "机器没连上,或驱动程序未安装!"
Case Else
MsgBox "异常"
End Select
' //返回解释
'
' #define ERR_REQUEST 8//寻不到卡
'
' #define ERR_NONEDLL 21//没有动态库
' #define ERR_DRIVERORDLL 22//动态库或驱动程序异常
' #define ERR_DRIVERNULL 23//驱动程序错误或尚未安装
' #define ERR_TIMEOUT 24//操作超时,一般是动态库没有反映
' #define ERR_TXSIZE 25//发送字数不够
' #define ERR_TXCRC 26//发送的CRC错
' #define ERR_RXSIZE 27//接收的字数不够
' #define ERR_RXCRC 28//接收的CRC错
End Sub
Private Sub Command4_Click()
'让设备发出声音
'技术支持:
'网站:
idr_beep 50
End Sub
Private Sub Command5_Click()
'读取设备编号,可做为软件加密狗用,也可以根据此编号在公司网站上查询保修期限
'技术支持:
'网站:
Dim devno(0 To 3) As Byte '设备编号
status = pcdgetdevicenumber(VarPtr(devno(0)))
If pcdgetdevicenumber(VarPtr(devno(0))) = 0 Then
MsgBox Hex(devno(0)) + "-" + Hex(devno(1)) + "-" + Hex(devno(2)) + "-" + Hex(devno(3))
End If
'返回解释
'#define ERR_REQUEST 8'寻卡错误
'#define ERR_READSERIAL 9'读序列吗错误
'#define ERR_SELECTCARD 10'选卡错误
'#define ERR_LOADKEY 11'装载密码错误
'#define ERR_AUTHKEY 12'密码认证错误
'#define ERR_READ 13'读卡错误
'#define ERR_WRITE 14'写卡错误
'#define ERR_NONEDLL 21'没有动态库
'#define ERR_DRIVERORDLL 22'动态库或驱动程序异常
'#define ERR_DRIVERNULL 23'驱动程序错误或尚未安装
'#define ERR_TIMEOUT 24'操作超时,一般是动态库没有反映
'#define ERR_TXSIZE 25'发送字数不够
'#define ERR_TXCRC 26'发送的CRC错
'#define ERR_RXSIZE 27'接收的字数不够
'#define ERR_RXCRC 28'接收的CRC错
End Sub