|
Projektbeispiel 1, CardManager KVK - V2.x Dieses Projektbeispiel zeigt einen Quelltextauszug des CardManagers KVK im AutoDetect-Mode welcher in weiten Teilen exakt der Demoversion entspricht und beinhaltet sowohl die Statusabfragen zum Terminal, die Kartenprüfung und die Übergabe des Versicherten Daten Templates. Die auszuführenden Aktionen werden durch die Events bestimmt, welche vom SDK ausgelöst werden ! |
|
|
Private Sub Template() '- PC/SC Dienst: SCardSvr prüfen - If SCARD1.Services("SCardSvr", TASK_SERVICE, False) <> 1 then Debug.Print "Der Dienst 'SCardSvr' wird nicht ausgeführt !" Exit Sub End If '- Evtl. Kollisionsdienste suchen + beenden - SCARD1.Services "SCM_Smart_Card_Office_Kernel", TASK_SERVICE, True SCARD1.Services "SCMgr.exe", TASK_APPLICATION, True SCARD1.Services "sokscmpn.exe", TASK_APPLICATION, True '- Schnittstelle initialisieren - With SCARD1 If .GetReaderCount >0 then .CardReader = .GetReaderList .DisconnectFlag = SCARD_UNPOWER_CARD .AutoDetect False .Initialize Else Debug.Print "Es konnte kein Terminal ermittelt werden !" End If End With End Sub Private Sub SCARD1_OnMCARDClose() Debug.Print "Die Verbindung PC/SC <-> MCARD API, Kartenleser wurde getrennt !" End Sub Private Sub SCARD1_OnMCARDError() Debug.Print "Die Initialisierung der MCARD API ist fehlgeschlagen !" End Sub Private Sub SCARD1_OnMCARDInit() With SCARD1 Debug.Print "SDK Version :" & .Version Debug.Print "MCARD-Version :" & .CardDLL Debug.Print "ChannelID :" & .ChannelID Debug.Print "IFDSerialID :" & .IFDSerialID Debug.Print "IFDVersion :" & .IFDVersion End With SCARD1.AutoDetect True, 50 '<- AutoDetect aktivieren ! End Sub Private Sub SCARD1_OnInsert() With SCARD1 .ShowTrayIcon True .Connect End With End Sub Private Sub SCARD1_OnConnect() With SCARD1.INFO Debug.Print "BitOrder :" & .BitOrder Debug.Print "CardCompany :" & .CardCompany Debug.Print "ChipCompany :" & .ChipCompany Debug.Print "ChipAttrID :" & .ChipAttrID Debug.Print "ChipType :" & .ChipType Debug.Print "Clockrate :" & .Clockrate Debug.Print "Counter :" & .Counter Debug.Print "CR's :" & .CR Debug.Print "MemoryZone :" & .CardZone Debug.Print "MemorySize :" & .CardSize Debug.Print "PIN :" & .PIN Debug.Print "Protocol :" & .Protocol Debug.Print "SerialNr. :" & .SerialNr End With SCARD1.IsHealthCard '<- Plausibilitätsprüfung durchführen ! End Sub Private Sub SCARD1_OnConnectError() Debug.Print "Der Verbindungsaufbau zur Chipkarte ist fehlgeschlagen !" End Sub Private Sub SCARD1_OnHealthCard() With SCARD1.KVK Debug.Print "Nachname :" & .Nachname Debug.Print "Vorname :" & .Vorname Debug.Print "Zusatz :" & .Zusatz Debug.Print "Titel :" & .Titel Debug.Print "GebDatum :" & .GebDatum Debug.Print "Strasse :" & .Strasse Debug.Print "PLZ :" & .PLZ Debug.Print "Wohnort :" & .Wohnort Debug.Print "KKName :" & .KKName Debug.Print "IKNr :" & .IKNr Debug.Print "Laendercode :" & .Laendercode Debug.Print "VNr :" & .VNr Debug.Print "VKNr :" & .VKNr Debug.Print "Validate :" & .Validate Debug.Print "Status :" & .Status Debug.Print "StatusADD :" & .StatusADD Debug.Print "Alter : & .Years Debug.Print "Prüfsumme :" & Hex(.Checksum) '// Versicherungsende prüfen // If .Expired then Debug.Print "Die Versichertenkarte ist abgelaufen !" End If '// Prüfsumme berechnen + vergleichen // If SCARD1.Checksum <> .Checksum then Debug.Print "Die Integritätsprüfung ist fehlgeschlagen !" Debug.Print "Extern berechnete Prüfsumme: " & Hex(SCARD1.Checksum) Debug.Print "Gespeicherte Prüfsumme: " & Hex(.Checksum) End If End With End Sub Private Sub SCARD1_OnHealthCardError() Debug.Print "Die Chipkarte entspricht nicht der KVK Spezifikation !" End Sub Private Sub SCARD1_OnRemoved() SCARD1.ShowTrayIcon False End Sub Private Sub Form_Unload(Cancel as Integer) SCARD1.Shutdown End Sub |
|
| ©2011 by ProScan Elektronische Systeme, Buchholzer Weg 2, 42897 Remscheid, www.smartcardtools.de | |