السادة الاعضاء السلام عليكم ورحمة الله
هل يمكن للاكسس قراءة البطاقة الذكية باستخدام اكواد او اداة ؟ وكيف هل يوجد مثال او رابط يمكن الاستفادة منه ؟ شاكر لكم تعاونكم وعطائكم البناء
تحياتي للجميع
السادة الاعضاء السلام عليكم ورحمة الله
هل يمكن للاكسس قراءة البطاقة الذكية باستخدام اكواد او اداة ؟ وكيف هل يوجد مثال او رابط يمكن الاستفادة منه ؟ شاكر لكم تعاونكم وعطائكم البناء
تحياتي للجميع
طارق العيد
قراءة البطاقة الذكية من الاكسس مباشرة يعبتر امر هام جدا في تسجيل البيانات الاساسية ، الا ان هذا الموضوع لم اجد له اثر في المنتديات العربية والاجنبية الى حد هذه اللحظة ، فمن لديه اي معلومه فاليفيدنا وله اجره عند الله ان شاء الله
طارق العيد
اخي الفاضل : طارق العيد
السلام عليكم ورحمة الله وبركاته
كما تعلم ان اي جهاز مخصص لقراءء البيانات الأساسية المدخلة فيه او المدخلة عن طريقه فإنه يحتاج الى نفس البرنامج الخاص به فعلى سبيل المثال لا الحصر اجهزة البصمة والبرامج الخاصة بها وهذا الحال ينطبق ايضا على اجهزة البطاقات الذكية فليس كل جهاز لديه القدرة على قراءة كل انواع البطاقات الذكية لأنها تختلف بإختلاف الجهاز الذي برمج لها خصيصا .
دعنا نعرض بعض الأمثلة والبرامج الخاصة بها :
1. بطاقات الصراف الآلي
هذه البطاقات كما تعلم انها لا تعمل إلا على اجهزة الـ ATM
2. بطاقات الحضور والإنصراف
هذه البطاقات تم برمجتها وادخال البيانات بها على اجهزة مخصصه لها
وهناك العديد من البطاقات الذكية المخصصة لأشياء امنيه مثل الخزائن او ابواب المكاتب والقائمة تطول .
الآن لو انتقلنا الى المواقع البرمجية ومواقع الشركات التي تتحدث عن البطاقات الذكية والبرامج الخاصة سنجد التالي :
http://www.didya.com/products.asp?id=1
Dim strNewLine As String
Dim strNewTab As String
Dim ss As String
Dim s As String
Dim bb As Boolean
Dim ii As Integer
Dim Proto As TxProtocol
Dim Sharing As TxSharingMode
Dim Closing As TxCardClosingMode
Dim CardInit As TxCardInitializationMode
Dim LogMode As TxEventsLoggingMode
Dim Locked As Boolean
Dim Connected As Boolean
Dim CardReady As Boolean
Dim ReadersList() As String
Dim ReaderName
Dim InfoLines() As String
Dim InfoLine
Dim VersionMajor As Integer
Dim VersionMinor As Integer
Dim VersionStr As String
Private Sub EnableCardReadyControls()
CardReady = SCardX_Easy.IsCardReady(RList.Text)
CommandRInfo.Enabled = Connected And CardReady And (Not Locked)
CommandCInfo.Enabled = Connected And CardReady And (Not Locked)
CommandATR.Enabled = Connected And CardReady And (Not Locked)
CommandReopen.Enabled = Connected And CardReady And (Not Locked)
CommandAPDU.Enabled = Connected And CardReady And (Not Locked)
CommandDATA.Enabled = Connected And CardReady And (Not Locked)
CommandOpenReader.Enabled = Connected And (Not CardReady)
CommandCloseReader.Enabled = Connected And CardReady And (Not Locked)
CommandReconnect.Enabled = Connected And CardReady And (Not Locked)
End Sub
Private Sub AddCommand(CommTarget As String, ComStr As String)
EventsList.AddItem "> " & ComStr & strNewTab & CommTarget
EventsList.Selected(EventsList.ListCount - 1) = True
End Sub
Private Sub AddLine(LineStr As String)
EventsList.AddItem "... " & strNewTab & LineStr
EventsList.Selected(EventsList.ListCount - 1) = True
End Sub
Private Sub AddEvent(EventSource As String, EventStr As String)
EventsList.AddItem "> " & EventStr & " :: " & EventSource
EventsList.Selected(EventsList.ListCount - 1) = True
End Sub
Private Sub MakeReadersList(ReadersNames As String)
RList.Clear
ReadersList = Split(ReadersNames, strNewLine, -1, 1)
ii = 0
For Each ReaderName In ReadersList
ii = ii + 1
If ReaderName <> "" Then
RList.AddItem ReaderName
End If
Next
If (RList.ListCount > 0) Then RList.ListIndex = 0
EnableCardReadyControls
End Sub
Private Sub EnableControls()
Connected = (SCardX_Easy.ConnectionState = stServiceConnected)
RList.Enabled = Connected
CommandConnect.Enabled = Not Connected And (Not Locked)
CommandDisconnect.Enabled = Connected And (Not Locked)
CommandRefresh.Enabled = Connected And (Not Locked)
EnableCardReadyControls
End Sub
Private Sub ShowControls()
If (SCardX_Easy.VisibleToolBar) Then Check1.Value = Checked Else: Check1.Value = Unchecked
If (SCardX_Easy.VisibleStatusBar) Then Check2.Value = Checked Else: Check2.Value = Unchecked
If (SCardX_Easy.VisibleEventsHistory) Then Check4.Value = Checked Else: Check4.Value = Unchecked
If (SCardX_Easy.EventsHistoryEnabled) Then Check3.Value = Checked Else: Check3.Value = Unchecked
If (SCardX_Easy.SeparateReceivedBytes) Then Check9.Value = Checked Else: Check9.Value = Unchecked
If (SCardX_Easy.VisibleTrayIcon) Then Check10.Value = Checked Else: Check10.Value = Unchecked
If (SCardX_Easy.EventsLogging = xLog_AllEvents) Then Check8.Value = Checked Else: Check8.Value = Unchecked
End Sub
Private Sub Check1_Click()
SCardX_Easy.VisibleToolBar = (Check1.Value = Checked)
ShowControls
End Sub
Private Sub Check10_Click()
SCardX_Easy.VisibleTrayIcon = (Check10.Value = Checked)
ShowControls
End Sub
Private Sub Check2_Click()
SCardX_Easy.VisibleStatusBar = (Check2.Value = Checked)
ShowControls
End Sub
Private Sub Check3_Click()
SCardX_Easy.EventsHistoryEnabled = (Check3.Value = Checked)
ShowControls
End Sub
Private Sub Check4_Click()
SCardX_Easy.VisibleEventsHistory = (Check4.Value = Checked)
ShowControls
End Sub
Private Sub Check8_Click()
If (Check8.Value = Checked) Then LogMode = xLog_AllEvents Else LogMode = xLog_MostUsefulEvents
SCardX_Easy.EventsLogging = LogMode
ShowControls
End Sub
Private Sub Check9_Click()
SCardX_Easy.SeparateReceivedBytes = (Check9.Value = Checked)
ShowControls
End Sub
Private Sub Command1_Click()
SCardX_Easy.TrayIconMenuCreate (TryIconMenuItems.Text)
End Sub
Private Sub Command11_Click()
bb = (AutoOpenCheck.Value = Checked)
Proto = ProtoCombo.ListIndex
Sharing = SharingCombo.ListIndex
Closing = ClosingCombo.ListIndex
SCardX_Easy.SetPref_PCSC_OnCardDetect bb, Proto, Sharing, Closing
End Sub
Private Sub Command2_Click()
bb = SCardX_Easy.TrayIconMenuItemSetChecked(ItemID.Text, True)
End Sub
Private Sub Command3_Click()
bb = SCardX_Easy.TrayIconMenuItemSetChecked(ItemID.Text, False)
End Sub
Private Sub Command4_Click()
bb = SCardX_Easy.TrayIconMenuItemSetEnabled(ItemID.Text, True)
End Sub
Private Sub Command5_Click()
bb = SCardX_Easy.TrayIconMenuItemSetEnabled(ItemID.Text, False)
End Sub
Private Sub Command6_Click()
bb = SCardX_Easy.TrayIconMenuItemSetDefault(ItemID.Text, True)
End Sub
Private Sub Command7_Click()
bb = SCardX_Easy.TrayIconMenuItemSetDefault(ItemID.Text, False)
End Sub
Private Sub Command8_Click()
ss = SCardX_Easy.DES_DecryptString(KeyHEX.Text, DecrText.Text)
AddCommand "", "DES Decrypt String"
AddLine "Key HEX : " & KeyHEX
AddLine "Encrypted data : '" & DecrText.Text & "'"
AddLine "Decrypted data : '" & ss & "'"
End Sub
Private Sub Command9_Click()
ss = SCardX_Easy.DES_EncryptString(KeyHEX.Text, EncrText.Text)
AddCommand "", "DES Encrypt String"
AddLine "Key HEX : " & KeyHEX
AddLine "Text for encrypt : '" & EncrText.Text & "'"
AddLine "Encrypted data : " & ss
End Sub
Private Sub CommandAPDU_Click()
SW1SW2.Text = ""
DataOut.Text = ""
sss = SCardX_Easy.SendCardAPDU(RList.Text, Cla.Text, Ins.Text, P1_1.Text, P2_1.Text, P3_1.Text, Le_1.Text, DataIn.Text, s, ss)
SW1SW2.Text = s
DataOut.Text = ss
End Sub
Private Sub CommandATR_Click()
AddCommand "", "Get Card ATR"
ss = SCardX_Easy.GetCardATR(RList.Text)
EventsList.AddItem ss
EventsList.Selected(EventsList.ListCount - 1) = True
End Sub
Private Sub CommandCInfo_Click()
AddCommand "", "Get Card Info"
If (Check6.Value = Checked) Then ss = SCardX_Easy.GetCardInfoFmt(RList.Text) Else ss = SCardX_Easy.GetCardInfo(RList.Text)
InfoLines = Split(ss, strNewLine, -1, 1)
ii = 0
For Each InfoLine In InfoLines
ii = ii + 1
If InfoLine <> "" Then
s = InfoLine
EventsList.AddItem s
End If
Next
EventsList.Selected(EventsList.ListCount - 1) = True
End Sub
Private Sub CommandCloseReader_Click()
SCardX_Easy.CloseReader (RList.Text)
End Sub
Private Sub CommandConnect_Click()
SCardX_Easy.SmartCardService = srv_MS_PCSC_SCard_Service
SCardX_Easy.ConnectionState = stServiceConnected
End Sub
Private Sub CommandDATA_Click()
ReceivedBuffer.Text = ""
s = SCardX_Easy.SendCardDATA(RList.Text, SendBuffer.Text)
ReceivedBuffer.Text = s
End Sub
Private Sub CommandDisconnect_Click()
SCardX_Easy.ConnectionState = stServiceNotConnected
SCardX_Easy.SmartCardService = srv_Not_Defined
End SubPrivate Sub CommandErrorLookUp_Click()
AddCommand TextELookUp.Text, "ErrorLookUp"
ss = SCardX_Easy.LookUpError(TextELookUp.Text)
EventsList.AddItem ss
EventsList.Selected(EventsList.ListCount - 1) = True
End Sub
Private Sub CommandOpenReader_Click()
SCardX_Easy.OpenReader (RList.Text)
End Sub
Private Sub CommandReconnect_Click()
Proto = ComboReconnectProto.ListIndex + 1
Sharing = ComboReconnectShare.ListIndex
CardInit = ComboReconnectInit.ListIndex
SCardX_Easy.ReconnectReader RList.Text, Proto, Sharing, CardInit
End Sub
Private Sub CommandRefresh_Click()
MakeReadersList (SCardX_Easy.GetReadersList)
End Sub
Private Sub CommandReopen_Click()
SCardX_Easy.ReopenReader (RList.Text)
End Sub
Private Sub CommandRInfo_Click()
AddCommand "", "Get Reader Info"
If (Check5.Value = Checked) Then ss = SCardX_Easy.GetReaderInfoFmt(RList.Text) Else ss = SCardX_Easy.GetReaderInfo(RList.Text)
InfoLines = Split(ss, strNewLine, -1, 1)
ii = 0
For Each InfoLine In InfoLines
ii = ii + 1
If InfoLine <> "" Then
s = InfoLine
EventsList.AddItem s
End If
Next
EventsList.Selected(EventsList.ListCount - 1) = True
End Sub
Private Sub CommandStateLookUp_Click()
AddCommand TextSLookUp.Text, "StateLookUp"
ss = SCardX_Easy.LookUpReaderState(TextSLookUp.Text)
InfoLines = Split(ss, strNewLine, -1, 1)
ii = 0
For Each InfoLine In InfoLines
ii = ii + 1
If InfoLine <> "" Then
s = InfoLine
EventsList.AddItem s
End If
Next
EventsList.Selected(EventsList.ListCount - 1) = True
End Sub
Private Sub Form_Load()
strNewLine = Chr(13) & Chr(10)
strNewTab = Chr(9)
Locked = False
Connected = False
CardReady = False
ProtoCombo.Clear
ProtoCombo.AddItem "Autodetect"
ProtoCombo.AddItem "T0"
ProtoCombo.AddItem "T1"
ProtoCombo.AddItem "RAW"
ProtoCombo.AddItem "Undefined"
ProtoCombo.Text = "Autodetect"
SharingCombo.Clear
SharingCombo.AddItem "Share Reader"
SharingCombo.AddItem "Exclusive Use"
SharingCombo.AddItem "Direct Reader Control"
SharingCombo.Text = "Share Reader"
ClosingCombo.Clear
ClosingCombo.AddItem "Leave Card"
ClosingCombo.AddItem "Reset Card"
ClosingCombo.AddItem "Unpower Card"
ClosingCombo.AddItem "Eject Card"
ClosingCombo.Text = "Reset Card"
ComboReconnectProto.Clear
ComboReconnectProto.AddItem "T0"
ComboReconnectProto.AddItem "T1"
ComboReconnectProto.ListIndex = 0
ComboReconnectShare.Clear
ComboReconnectShare.AddItem "Share Reader"
ComboReconnectShare.AddItem "Exclusive Use"
ComboReconnectShare.ListIndex = 0
ComboReconnectInit.Clear
ComboReconnectInit.AddItem "Leave Card"
ComboReconnectInit.AddItem "Reset Card ( Warm Reset )"
ComboReconnectInit.AddItem "Unpower Card ( Cold Reset )"
ComboReconnectInit.ListIndex = 1
ii = 0
EventsList.Clear
SCardX_Easy.ActivePage = apStates
SCardX_Easy.VisibleStatusBar = True
SCardX_Easy.VisibleToolBar = False
SCardX_Easy.VisibleEventsHistory = True
VersionMajor = SCardX_Easy.VersionMajor
VersionMinor = SCardX_Easy.VersionMinor
Label1.Caption = SCardX_Easy.Version
SCardX_Easy.SmartCardService = srv_MS_PCSC_SCard_Service
SCardX_Easy.ConnectionState = stServiceConnected
ShowControls
EnableControls
TryIconMenuItems.Text = "ID_1=TryIcon Menu Item 1" & strNewLine & "----" & strNewLine & "ID_2=TryIcon Menu Item 2" & strNewLine & "ID_3=TryIcon Menu Item 3"
SCardX_Easy.TrayIconMenuCreate (TryIconMenuItems.Text)
bb = SCardX_Easy.TrayIconMenuItemSetDefault("ID_1", True)
bb = SCardX_Easy.TrayIconMenuItemSetChecked("ID_2", True)
End Sub
Private Sub Form_Unload(Cancel As Integer)
SCardX_Easy.Finalize
End Sub
Private Sub RList_Click()
CardReady = SCardX_Easy.IsCardReady(RList.Text)
EnableCardReadyControls
End Sub
Private Sub SCardX_Easy_OnCardDetected(ReaderName As String)
AddEvent ReaderName, "OnCardDetected"
EnableCardReadyControls
End Sub
Private Sub SCardX_Easy_OnCardInvalid(ReaderName As String)
AddEvent ReaderName, "OnCardInvalid"
EnableCardReadyControls
End Sub
Private Sub SCardX_Easy_OnCardReady(ReaderName As String, ATR As String, ProtocolValue As Long, Protocol As String)
AddEvent ReaderName, "OnCardReady"
AddLine "ATR " & " :: " & ATR
AddLine "Protocol" & " :: " & Protocol
EnableCardReadyControls
End Sub
Private Sub SCardX_Easy_OnCardWait(ReaderName As String)
AddEvent ReaderName, "OnCardWait"
EnableCardReadyControls
End Sub
Private Sub SCardX_Easy_OnConnected(Service As Long)
EnableControls
End Sub
Private Sub SCardX_Easy_OnDataSent(ReaderName As String, SentDataBuffer As String, ReceivedDataBuffer As String)
AddEvent ReaderName, "OnDataSent"
AddLine "Sent Data :: " & SentDataBuffer
AddLine "Received Data :: " & ReceivedDataBuffer
End Sub
Private Sub SCardX_Easy_OnDisconnected()
EnableControls
End Sub
Private Sub SCardX_Easy_OnERROR(ErrorSource As String, ErrorCode As Long, ErrorString As String)
AddEvent ErrorSource, "### ERROR"
AddLine "Error Code :: " & ErrorCode
AddLine "Error String :: " & ErrorString
End Sub
Private Sub SCardX_Easy_OnHistoryEvent(EventID As Long, EventSource As String, EventBody As String, EventValue As String, EventTime As String)
'AddEvent "", "OnHistoryEvent"
'AddLine "ID :: " & EventID
'AddLine "Event :: " & EventBody
'AddLine "Value :: " & EventValue
'AddLine "Source :: " & EventSource
'AddLine "Time :: " & EventTime
End Sub
Private Sub SCardX_Easy_OnLock(Message As String)
Locked = True
EnableControls
End Sub
Private Sub SCardX_Easy_OnReaderAdded(ReaderName As String)
AddEvent ReaderName, "OnReaderAdded"
End Sub
Private Sub SCardX_Easy_OnReaderClosed(ReaderName As String)
AddEvent ReaderName, "OnReaderClosed"
EnableCardReadyControls
End Sub
Private Sub SCardX_Easy_OnReaderOpened(ReaderName As String)
AddEvent ReaderName, "OnReaderOpened"
EnableCardReadyControls
End Sub
Private Sub SCardX_Easy_OnReaderRemoved(ReaderName As String)
AddEvent ReaderName, "OnReaderRemoved"
End Sub
Private Sub SCardX_Easy_OnReadersList(ReadersList As String)
MakeReadersList (ReadersList)
End Sub
Private Sub SCardX_Easy_OnReaderStateChanged(ReaderName As String, ReaderState As Long, ReaderStateHex As String, ReaderStateLookup As String)
If (Check7.Value = Checked) Then
AddEvent ReaderName, "OnReaderStateChanged"
ss = ReaderStateLookup
InfoLines = Split(ss, strNewLine, -1, 1)
ii = 0
For Each InfoLine In InfoLines
ii = ii + 1
If InfoLine <> "" Then
s = InfoLine
AddLine s
End If
Next
End If
End Sub
Private Sub SCardX_Easy_OnTrayIconDblClick()
AddEvent "", "OnTrayIconDblClick"
End Sub
Private Sub SCardX_Easy_OnTrayIconMenuItem(ItemID As String, IsChecked As Boolean, IsEnabled As Boolean, IsDefault As Boolean, Caption As String)
AddEvent ItemID, "OnTrayIconMenuItem"
AddLine "Caption :: " & Caption
AddLine "Checked :: " & IsChecked
AddLine "Enabled :: " & IsEnabled
AddLine "Default :: " & IsDefault
bb = Not IsChecked
If (ItemID = "ID_2") Then b = SCardX_Easy.TrayIconMenuItemSetChecked("ID_2", bb)
End Sub
Private Sub SCardX_Easy_OnUnlock()
Locked = False
EnableControls
End Subتم تعديل هذه المشاركة بواسطة zahrah في 25 فبراير 2013 في 08:21
مشكورة أختي الفاضلة على هذا الشرح الجميل
عَنْ عَائِشَةَ ر ضي الله عنها قَالَتْ: سَمِعْتُ النَّبِيَ يَقُولُ: «الأَرْوَاحُ جُنُودٌ مُجَنَّدَةٌ؛ فَمَا تَعَارَفَ مِنْهَا ائْتَلَفَ، وَمَا تَنَاكَرَ مِنْهَا اخْتَلَفَ»
الاستاذه الفاضلة زهرة كل الشكر والتقدير على كل من تتفضلين به من الشرح المفيد والوافي ، وعلى كل ما تبذلينه من جهد في نشر العلم والمعرفة ، ونقدر لك هذا ولا ننساه ، ولا نملك لك الا الشكر والثناء والدعاء لك بالخير على هذا العطاء دمتي في حفظ الله ورعايته
طارق العيد
هذا الموضوع مغلق.