本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
NFCリーダを使ってUID読込アプリ
Mifare1K ICカードのUID読み取りアプリを作ってみます。
Accessを利用して、簡単に作成できます。
事前準備
パソリ SONY RC-S380を準備します
NFCポートソフトウェアをインストールします
使うDLL
SheepSmartCard.dll
YoshiroTamuraさんは日本の方ですね。以前は、ホームページがあってそこで配布されていましたが、最近はGit hubに引っ越されたようです。
SheepSmartCard DLL は、WinScard API(winscard.dll) を呼び出し、スマート カードが持つ一意の ID、RFID タイプ A (Mifare) の「UID」と RFID タイプ F (FeliCa) の「IDm」を読み取ります。
SheepSmartCard
このライブラリはIDを読み取るだけなので、利用することでカード情報の漏洩や改ざんの心配はありません。
カードに固有に割り振られているUIDを読み取るだけのシンプルなつくりになっています。使い方は、
- SheepSmartCard.dllをダウンロードし、
- SheepSmartCard64.dll を C:\Windows\System32 に配置します。
- プログラムコードから GetSmartCardUID という名前の関数を呼び出す事でUIDを取得できます。
とっても簡単に利用を開始できます。
開発アプリ
サンプルソースは、
の4種類を準備してくださっています。サンプルを使うと、簡単にUIDが取得できます。
DLLの置き場所
‘SheepSmartCard.dllをパスの通ったフォルダ(C:\Windows\System32など)に置いて下さい(もしくは下の「SheepSmartCard.dll」をフルパスで指定して下さい)
⇒ System32においても SheepSmartCard.dllが見つかりませんと表示された
⇒ C:\直下にDLLを配置し、フルパスを記載したら実行できた Private Declare Function GetSmartCardUID Lib “C:\SheepSmartCard.dll” (ByVal SCardUID As String) As Integer
64ビットシステムで称するために更新する必要があります
このプロジェクトのコードは、64ビットシステムで使用するために更新する必要があります。Declareステートメントの確認及び更新を行い、次にDeclareステートメントにPtrSafe属性を指定してください。
Declareの対処は指定していたのですが、なんか増えた(^_^;)
Option Compare Database
'SheepSmartCard.dllをパスの通ったフォルダ(C:\Windows\System32など)に置いて下さい(もしくは下の「SheepSmartCard.dll」をフルパスで指定して下さい)
Private Declare PtrSafe Function GetSmartCardUID Lib "C:\Program Files\SheepSmartCard\SheepSmartCard.dll" (ByVal SCardUID As String) As Integer
PtrSafeも書かないといけないの?とりあえず書いたら動きました。
32bit版?64bit版?
最近、32bit版で動くWindowsは見なくなりました。このSheepSmartCard.dllにも、32bit版と64bit版があるようです。ちゃんと意識して使わないと、
実行時エラー”48″:
ファイルが見つかりません
というエラーが出ます。
試しに64bit版をダウンロードして設定したらこのエラー出なくなりました。
以前ダウンロードしたdllをそのまま利用していたので、昔32bitで使っていたものをそのまま流用してたのかなと思います。