Sample code for 30+ languages & platforms
Xbase++

PC/SC List Smart Card Readers (and USB Tokens)

See more SCard Examples

Demonstrates how to list the smart card readers and USB tokens connected to the computer.

Note: This functionality was introduced in Chilkat v9.5.0.87.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oScard
LOCAL oStReaders
LOCAL nNumReaders
LOCAL i

nSuccess := 0

//  This example requires the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

oScard := CreateObject("Chilkat.SCard")

//  First establish a context to the PC/SC Resource Manager
nSuccess := oScard:EstablishContext("user")
IF (nSuccess == 0)
    ? oScard:LastErrorText
    oScard:destroy()
    RETURN
ENDIF

oStReaders := CreateObject("Chilkat.StringTable")
nSuccess := oScard:ListReaders(oStReaders)
IF (nSuccess == 0)
    ? oScard:LastErrorText
    oScard:destroy()
    oStReaders:destroy()
    RETURN
ENDIF

nNumReaders := oStReaders:Count
i := 0
DO WHILE i < nNumReaders
    ? Str(i) + ": " + oStReaders:StringAt(i)
    i := i + 1
ENDDO

//  Sample output:
//  0: Alcor Micro USB Smart Card Reader 0
//  1: FS USB Token 0
//  2: FT Java Token 0
//  3: SCM Microsystems Inc. SCR33x USB Smart Card Reader 0
//  4: Yubico YubiKey OTP+FIDO+CCID 0

//  Applications should always release the context when finished.
nSuccess := oScard:ReleaseContext()
IF (nSuccess == 0)
    ? oScard:LastErrorText
ENDIF

oScard:destroy()
oStReaders:destroy()