Sample code for 30+ languages & platforms
AutoIt

ScMinidriver - Change Smart Card PIN (or USB token PIN)

See more ScMinidriver Examples

Demonstrates how to change the PIN for a smart card or USB token.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

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

$oScmd = ObjCreate("Chilkat.ScMinidriver")

; Reader names (smart card readers or USB tokens) can be discovered
; via List Readers or Find Smart Cards
Local $sReaderName = "Alcor Micro USB Smart Card Reader 0"
$bSuccess = $oScmd.AcquireContext($sReaderName)
If ($bSuccess = False) Then
    ConsoleWrite($oScmd.LastErrorText & @CRLF)
    Exit
EndIf

; If successful, the name of the currently inserted smart card is available:
ConsoleWrite("Card name: " & $oScmd.CardName & @CRLF)

; Change the "user" PIN.  (Typically, you'll always be using the "user" PIN.)
Local $sCurrentPin = "0000"
Local $sNewPin = "1234"
Local $iRetval = $oScmd.PinChange("user",$sCurrentPin,$sNewPin)
If ($iRetval = -1) Then
    ConsoleWrite("The PIN is already blocked." & @CRLF)
    Exit
EndIf

If ($iRetval = -2) Then
    ConsoleWrite("The PinChange function failed for some unanticipated reason" & @CRLF)
    ConsoleWrite($oScmd.LastErrorText & @CRLF)
    Exit
EndIf

If ($iRetval = 0) Then
    ConsoleWrite("PIN successfully changed." & @CRLF)
Else
    ConsoleWrite("Current PIN is incorrect." & @CRLF)
    ConsoleWrite("Number of attempts remaining = " & $iRetval & @CRLF)
EndIf

$oScmd.DeleteContext()