title image


Smiley Re: Hängt sehr von dem Chipkartenleser ab...
Hallo,



vielleicht hilfts weiter...



Private Declare Function SCardComand Lib "SCARD32" (Handle As Long, ByVal cmd As String, CmdLen As Long, ByVal DataIn As String, DataInLen As Long, ByVal DataOut As String, DataOutLen As Long) As Long



Dim L As Long

L = SCardComand(0, "Device,SearchComPort", 0, vbNullString, 0, vbNullString, 0)

If L = 0 Then

MsgBox("Kartenleser gefunden !")

Endif



Wenn das geklappt hat, kannst Du munter auf dem Kartenleser zugreifen.

Wichtig ist nur das Du DataOut zuvor mit Leerzeichen auffüllst, weil ansonsten die dll, oder besser gesagt der Karten-Server keine Daten zurückgeben kann.



Überprüfen ob eine Karte eingesteckt ist geht dann z.B. So:

Dim D As String

Dim L As Long

D = String(200, 0)

L = SCardComand(0, "Card,Info,Status", 0, vbNullString, 0, D, 200)

D = Left(D, InStr(D, Chr(0)) - 1)

If D = "active" Then

MsgBox("Karte steckt !")

End If



Diesen Aufruf kannst Du am besten in einer Schleife setzen, die ständig prüft, ob eine Karte in den Leser gesteckt wird.



Krankenversichertenkarte lesen:



Dim D As String

Dim L As Long

D = String(255, 0)

L = SCardComand(0, "Apps,KVK", 0, vbNullString, 0, D, 255)



In D stehen nach erfolgreichem Aufruf alle Versichertendaten drin.



Ist L 0 dann gab es einen Fehler!

Du kannst den Fehler folgendermaßen außwerten:

Dim D As String

Dim X As Long



D = String(200, 0)

X = SCardComand(0, "System,ConvertErrCode," + Hex(L), 0, vbNullString, 0, D, 200)

MsgBox ("ERROR: " + Hex(L) + " " + D)







Gruß Peter

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: