Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(SQL Server) PC/SC List Smart Card Readers (and USB Tokens)See more SCard ExamplesDemonstrates 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.
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) -- This example requires the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. DECLARE @scard int -- Use "Chilkat_9_5_0.SCard" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.SCard', @scard OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END -- First establish a context to the PC/SC Resource Manager DECLARE @success int EXEC sp_OAMethod @scard, 'EstablishContext', @success OUT, 'user' IF @success = 0 BEGIN EXEC sp_OAGetProperty @scard, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @scard RETURN END DECLARE @stReaders int -- Use "Chilkat_9_5_0.StringTable" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.StringTable', @stReaders OUT EXEC sp_OAMethod @scard, 'ListReaders', @success OUT, @stReaders IF @success = 0 BEGIN EXEC sp_OAGetProperty @scard, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @scard EXEC @hr = sp_OADestroy @stReaders RETURN END DECLARE @numReaders int EXEC sp_OAGetProperty @stReaders, 'Count', @numReaders OUT DECLARE @i int SELECT @i = 0 WHILE @i < @numReaders BEGIN EXEC sp_OAMethod @stReaders, 'StringAt', @sTmp0 OUT, @i PRINT @i + ': ' + @sTmp0 SELECT @i = @i + 1 END -- 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. EXEC sp_OAMethod @scard, 'ReleaseContext', @success OUT IF @success = 0 BEGIN EXEC sp_OAGetProperty @scard, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 END EXEC @hr = sp_OADestroy @scard EXEC @hr = sp_OADestroy @stReaders END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.