SLE4432/4442函数库

来源:互联网 发布:沙迪克火花机镜面编程 编辑:程序博客网 时间:2024/06/11 18:49
Declare Function srd_4442 Lib "mwic_32.dll" (ByVal icdev As LongByVal offset As IntegerByVal le As IntegerByVal data_buffer$) As Integer
Declare Function srd_4442_hex Lib "mwic_32.dll" Alias "srd_4442" (ByVal icdev As LongByVal offset As IntegerByVal le As IntegerByRef data_buff As ByteAs Integer
Declare Function swr_4442 Lib "mwic_32.dll" (ByVal icdev As LongByVal offset As IntegerByVal le As IntegerByVal data_buffer$) As Integer
Declare Function swr_4442_hex Lib "mwic_32.dll" Alias "swr_4442" (ByVal icdev As LongByVal offset As IntegerByVal le As IntegerByRef data_buffer As ByteAs Integer

Declare Function prd_4442 Lib "mwic_32.dll" (ByVal icdev As LongByVal le As IntegerByVal data_buffer$) As Integer
Declare Function pwr_4442 Lib "mwic_32.dll" (ByVal icdev As LongByVal offset As IntegerByVal le As IntegerByVal data_buffer$) As Integer
Declare Function chk_4442 Lib "mwic_32.dll" (ByVal icdev As LongAs Integer

Declare Function csc_4442 Lib "mwic_32.dll" (ByVal icdev As LongByVal le As IntegerByRef data_buffer As ByteAs Integer
Declare Function wsc_4442 Lib "mwic_32.dll" (ByVal icdev As LongByVal le As IntegerByRef data_buffer As ByteAs Integer
Declare Function rsc_4442 Lib "mwic_32.dll" (ByVal icdev As LongByVal le As IntegerByRef data_buffer As ByteAs Integer
Declare Function rsct_4442 Lib "mwic_32.dll" (ByVal icdev As Long, counter As IntegerAs Integer

Declare Function asc_hex Lib "mwic_32.dll" (ByVal asc$, ByRef hex As ByteByVal le&As Integer
Declare Function hex_asc Lib "mwic_32.dll" (ByRef hex As ByteByVal asc$, ByVal le&As Integer
Declare Function asc_asc% Lib "mwic_32.dll" (ByVal sorc$, ByRef des As ByteByVal le&)

Declare Function ic_encrypt Lib "mwic_32.dll" (ByVal key As StringByVal ptrsource As StringByVal le As IntegerByRef ptrdest As ByteAs Integer
Declare Function ic_decrypt Lib "mwic_32.dll" (ByVal key As StringByRef ptrdest As ByteByVal le As IntegerByVal ptrsource As StringAs Integer
 

 

 

Declare Function usb_auto_init Lib "mwic_32.dll" () As Long
Declare Function usb_ic_init Lib "mwic_32.dll" () As Long
Declare Function get_status Lib "mwic_32.dll" (ByVal icdev As LongByRef status As IntegerAs Integer

Declare Function cmp_dvsc Lib "mwic_32.dll" (ByVal icdev As LongByVal length As IntegerByVal data_buffer$) As Integer
Declare Function srd_dvsc Lib "mwic_32.dll" (ByVal icdev As LongByVal length As LongByVal data_buffer$) As Integer
Declare Function swr_dvsc Lib "mwic_32.dll" (ByVal icdev As LongByVal length As IntegerByVal data_buffer$) As Integer
Declare Function setsc_md Lib "mwic_32.dll" (ByVal icdev As LongByVal mode As IntegerAs Integer

Declare Function turn_on Lib "mwic_32.dll" (ByVal icdev As LongAs Integer
Declare Function turn_off Lib "mwic_32.dll" (ByVal icdev As LongAs Integer
Declare Function srd_ver Lib "mwic_32.dll" (ByVal icdev As LongByVal le As IntegerByVal data_buffer$) As Integer
Declare Function auto_pull Lib "mwic_32.dll" (ByVal icdev As LongAs Integer
Declare Function dv_beep Lib "mwic_32.dll" (ByVal icdev As LongByVal time As IntegerAs Integer
Declare Function usb_ic_exit% Lib "mwic_32.dll" (ByVal icdev As Long)

 

Dim Data1 As String * 16
Dim Data2 As String * 16
Dim databuff1(7As Byte
Dim databuff2(7As Byte
Dim offset As Integer
Dim length As Integer
Dim status As Integer
Dim password(2As Byte
Dim proval As String * 8
Dim counter As Integer
Dim oldpass As String
Dim ptrdest(16As Byte
Dim ptrsource As String * 16
Private Sub Command6_Click()

'****************************测4442卡****************************
st = chk_4442(icdev)
If st < 0 Then
    List1.AddItem (
"chk card error")
    
Exit Sub
Else
    List1.AddItem (
"chk card ok")
End If

'******************************校验密码****************************
'
password(0) = &HB6
'
password(1) = &H23
'
password(2) = &H7

'oldpass = "ffffff"
'
st = asc_hex(oldpass, password(0), 3)
'
If st < 0 Then
'
    List1.AddItem ("asc_hex error")
'
    Exit Sub
'
Else
'
    List1.AddItem ("asc_hex ok")
'
End If
'
'
'
st = csc_4442(icdev, 3, password(0))
'
If st < 0 Then
'
    List1.AddItem ("csc error")
'
    Exit Sub
'
Else
'
    List1.AddItem ("csc  ok")
'
End If

'***********************读出卡密码***************************
st = rsc_4442(icdev, 3, password(0))
 
If st < 0 Then
    List1.AddItem (
"rsc error")
    
Exit Sub
Else
    List1.AddItem (
"rsc  ok")
    
For i = 0 To 2
        
MsgBox password(i)
    
Next
End If
'**********************改写密码******************************

password(
0= &HB6
password(
1= &H23
password(
2= &H7
st 
= wsc_4442(icdev, 3, password(0))
If st < 0 Then
    List1.AddItem (
"wsc error")
Else
    List1.AddItem (
"wsc ok")
End If
'*********************读出密码错误计数器**********************
st = rsct_4442(icdev, counter)
If st < 0 Then
    List1.AddItem (
"rsct  error")
    
Exit Sub
Else
    List1.AddItem (
"rsct Ok")
    List1.AddItem (
Str(counter))
End If

'**********************读写卡 *******************************
offset = 40
length 
= 10
Data1 
= "1234567890"
st 
= swr_4442(icdev, offset, length, Data1)
If st < 0 Then
  List1.AddItem (
"write error")
  
Exit Sub
Else
  List1.AddItem (
"write OK")
End If

st 
= srd_4442(icdev, offset, length, Data2)
If st < 0 Then
  List1.AddItem (
"read error")
  
Exit Sub
Else
  List1.AddItem (
"read OK")
  List1.AddItem (Data2)
End If

'**********************读写保护区******************************
proval = "6"
'st = pwr_4442(icdev, 30, 1, proval)
If st < 0 Then
  List1.AddItem (
"pwr error")
  
Exit Sub
Else
  List1.AddItem (
"pwr OK")
  List1.AddItem (proval)
End If

st 
= prd_4442(icdev, 4, proval)
If st < 0 Then
  List1.AddItem (
"prd error")
  
Exit Sub
Else
  List1.AddItem (
"prd OK")
End If
'*******************十六进制读写******************************

offset 
= 56
length 
= 8
Data1 
= "abcdef0123456789"
st 
= asc_hex(Data1, databuff1(0), 8)
If st < 0 Then
    List1.AddItem (
"asc_hex error")
Else
    List1.AddItem (
"asc_hex ok")
End If
    
st 
= swr_4442_hex(icdev, offset, length, databuff1(0))
If st < 0 Then
  List1.AddItem (
"write error")
  
Exit Sub
Else
  List1.AddItem (
"write ok")
End If


st 
= srd_4442_hex(icdev, offset, length, databuff2(0))
If st < 0 Then
  List1.AddItem (
"read error")
  
Exit Sub
Else
  st 
= hex_asc(databuff2(0), Data2, 8)
  List1.AddItem (
"read OK")
  List1.AddItem (Data2)
End If

'****************************DES算法********************
st = ic_encrypt("12345678""明华技术开发中心"16, ptrdest(0))
If st < 0 Then
    List1.AddItem (
"ic_encrypt error")
    
Exit Sub
Else
    List1.AddItem (
"ic_encrypt ok")
End If

st 
= ic_decrypt("12345678", ptrdest(0), 16, ptrsource)
If st < 0 Then
    List1.AddItem (
"ic_decrypt error")
    
Exit Sub
Else
    List1.AddItem (
"ic_decrypt ok")
    List1.AddItem (ptrsource)
End If
'**********************************************************
End Sub

Private Sub Form_Load()

icdev 
= usb_auto_init()
If icdev < 0 Then
    List1.AddItem (
"Init error!")
    
Exit Sub
Else
    List1.AddItem (
"Init OK")
End If
  
st 
= get_status(icdev, status)
If st < 0 Then
  List1.AddItem (
"Status error")
  
Exit Sub
Else
  List1.AddItem (
"Status ok")
End If

End Sub

Private Sub Form_Unload(Cancel As Integer)
  
 st 
= usb_ic_exit(icdev)
 
End Sub