7,763
社区成员
发帖
与我相关
我的任务
分享
Private Sub cmdReset_Click()
Dim RecvLen As Long
Dim lngStatus As Long
Dim n As Integer
cmdDownload.Enabled = False
cmdAddress.Enabled = False
cmdSend.Enabled = False
cmdErase.Enabled = False
If hCntxt Then SCardReleaseContext hCntxt
RetVal = SCardEstablishContext(SCARD_SCOPE_SYSTEM, lngNull, lngNull, hCntxt)
If RetVal Then RetErr
txtRet = ""
txtInf = ""
txtSW1 = ""
txtSW2 = ""
txtInf = ""
Me.Refresh
curReader = Combo1.Text
myReaderState(0).szReader = curReader & vbNullChar
myReaderState(0).dwCurrentState = 0
RecvLen = 1
RetVal = SCardGetStatusChangeA(hCntxt, &HFFFFFFFF, myReaderState(0), RecvLen)
If RetVal Then RetErr: Exit Sub
lngStatus = myReaderState(0).dwEventState
strATR = ""
For i = 0 To myReaderState(0).cbAtr - 1
strATR = strATR & B2H(myReaderState(0).rgbAtr(i))
Next i
SpacePadding strATR, txtInf
If hCard <> 0 Then SCardDisconnect hCard, SCARD_UNPOWER_CARD
RetVal = SCardConnectA(hCntxt, curReader, SCARD_SHARE_EXCLUSIVE, SCARD_PROTOCOL_T0 Or SCARD_PROTOCOL_T1, hCard, Protocol)
If RetVal Then
RetErr
Exit Sub
End If
RetVal = SCardGetStatusChangeA(hCntxt, &HFFFFFFFF, myReaderState(0), RecvLen)
If RetVal Then RetErr: Exit Sub
lngStatus = myReaderState(0).dwEventState
strATR = ""
For i = 0 To myReaderState(0).cbAtr - 1
strATR = strATR & B2H(myReaderState(0).rgbAtr(i))
Next i
If lngStatus And 32 Then
RetState "Reset OK"
cmdDownload.Enabled = True
cmdAddress.Enabled = True
cmdSend.Enabled = True
cmdErase.Enabled = True
cmdExec.Enabled = True
txtCLA.SetFocus
pcb = 0
Else
RetState CardState(lngStatus)
End If
End Sub