1. 程式人生 > >USB介面ID卡讀卡器oem軟體/讀寫卡測試程式及原始碼/VB原始碼

USB介面ID卡讀卡器oem軟體/讀寫卡測試程式及原始碼/VB原始碼

詳細程式碼如下(如有疑問可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