要设计一个管理系统其中需要用到硬件”插入式IC卡“
有这方面的资料,或者有人做过这方面的东西,请联系我
oicq:30747762
Email:[email protected]

解决方案 »

  1.   

    你去买IC卡读卡器的时候,他们会给你 Dll,API 的使用范例,文档什么的。
    不知道你用的是什么卡和读卡器。因为不同的型号会有很大的差别。
    例子我有,但是不知道适不适合你,需要的话来信索取 [email protected]
      

  2.   

    给一段例子,库函数若要再发吧Option ExplicitGlobal icdev As Long
    Global st As Long
    Declare Function OpenComm Lib "dascard" (ByVal commport&) As Long
    Declare Function CloseComm Lib "dascard" (ByVal icdev&) As Long
    Declare Function Check_Reader Lib "dascard" (ByVal icdev&) As Long
    'Declare Function Init_SysCard Lib "dascard" (ByVal icdev&, ByVal userpwd$, ByVal systype&, ByVal mjsec&, ByVal mjcardtype&, ByVal xfsec&, ByRef commpwd As Byte) As Long
    Declare Function Init_SysCard Lib "dascard" (ByVal icdev&, ByVal userpwd$, ByVal systype&, ByVal mjsec&, ByVal mjcardtype&, ByVal xfsec&, ByVal commpwd As String) As LongDeclare Function Init_Pos_UserCard Lib "dascard" (ByVal icdev&, ByVal serno&, ByVal cardno$, ByVal usertype&, ByVal waitime&, ByRef cardserno&) As Long
    Declare Function Init_Pos_UserCard_N Lib "dascard" (ByVal icdev&, ByVal serno As Byte, ByVal cardno$, ByVal usertype&, ByVal value&, ByVal usecount&, ByVal waitime&, ByRef cardserno&) As Long
    Declare Function Init_Pos_OPTCard Lib "dascard" (ByVal icdev&, ByVal opt_num&, ByVal waitime&, ByRef cardserno&) As Long
    Declare Function RST_Pos_UserCard Lib "dascard" (ByVal icdev&, ByVal cardserno&, ByVal waitime&) As Long
    Declare Function RST_Pos_OPTCard Lib "dascard" (ByVal icdev&, ByVal cardserno&, ByVal waitime&) As Long
    Declare Function WRT_Pos_UserCard Lib "dascard" (ByVal icdev&, ByVal value&, ByVal cardserno&, ByVal waitime&) As Long
    Declare Function Query_Pos_Card Lib "dascard" (ByVal icdev&, ByRef cardtype&, ByRef opt_num&, ByRef serno&, ByRef cardno As Byte, ByRef cardserno&, ByRef value&, ByRef count&, ByRef usertype&, ByVal waitime&) As Long
    Declare Function Init_Access_UserCard Lib "dascard" (ByVal icdev&, ByVal serno&, ByVal cardno&, ByVal usertype&, ByVal waitime&, ByRef cardserno&) As Long
    Declare Function RST_Access_UserCard Lib "dascard" (ByVal icdev&, ByVal cardserno&, ByVal waitime&) As Long
    Declare Function Init_Access_UserCard_UsePassword Lib "dascard" (ByVal icdev&, ByVal cardserno&, ByVal waitime&) As Long
    Declare Function Query_Access_Card Lib "dascard" (ByVal icdev&, ByRef cardtype&, ByRef serno&, ByRef cardno&, ByRef cardsernko&, ByRef usertype&, ByVal waitime&) As LongDeclare Function Init_SysCard_N Lib "dascard" (ByVal icdev&, ByVal userpwd$, ByVal systype%, ByVal mjsec%, ByVal mjcardtype%, ByVal xfsec%, ByVal filename As String, ByVal commpwd As String) As Long
    Declare Function Load_Author Lib "dascard" (ByVal name As String) As Long
      

  3.   

    Option Explicit
    Dim namename As String * 30
    Private Sub cmdadd_Click()
        Dim serno As Long
        Dim cardno(0 To 11) As Byte
        Dim usertype As Long
        Dim value As Long
        Dim count As Long
        Dim cardserno As Long
        Dim cardtype As Long
        Dim opt_num As Long
        Dim i As Integer
        
        Beep
        List1.Clear
        serno = 1
        usertype = 1
        value = 10
        count = 0
        st = Init_Pos_UserCard_N(icdev, serno, "0000000001", usertype, value, count, 20, cardserno)
        Select Case st
          Case 0: List1.AddItem ("补发消费用户卡成功,ID号:" & cardserno)
          Case -3: List1.AddItem ("补发消费用户卡失败:没有消费系统授权信息")
          Case -5: List1.AddItem ("补发消费用户卡失败:参数错")
          Case -7: List1.AddItem ("补发消费用户卡失败:找不到卡")
          Case -9: List1.AddItem ("补发消费用户卡失败:找不到消费授权卡")
          Case -11: List1.AddItem ("补发消费用户卡失败:用户卡错误")
          Case -12: List1.AddItem ("补发消费用户卡失败:读卡错")
          Case -13: List1.AddItem ("补发消费用户卡失败:写卡错")
          Case -15: List1.AddItem ("补发消费用户卡失败:不可识别的卡")
          Case Else: List1.AddItem ("补发消费用户卡失败")
        End Select
        
        st = Query_Pos_Card(icdev, cardtype, opt_num, serno, cardno(0), cardserno, value, count, usertype, 20)
        Select Case st
          Case 0: List1.AddItem ("消费使用卡查询成功,ID号:" & cardserno)
          Case -3: List1.AddItem ("消费使用卡查询失败:没有消费系统授权信息")
          Case -5: List1.AddItem ("消费使用卡查询失败:参数错")
          Case -7: List1.AddItem ("消费使用卡查询失败:找不到卡")
          Case -9: List1.AddItem ("消费使用卡查询失败:找不到消费授权卡")
          Case -11: List1.AddItem ("消费使用卡查询失败:用户卡错误")
          Case -12: List1.AddItem ("消费使用卡查询失败:读卡错")
          Case -13: List1.AddItem ("消费使用卡查询失败:写卡错")
          Case -15: List1.AddItem ("消费使用卡查询失败:不可识别的卡")
          Case Else: List1.AddItem ("消费使用卡查询失败")
        End Select
        
        st = RST_Pos_UserCard(icdev, cardserno, 20)
        Select Case st
          Case 0: List1.AddItem ("回收消费用户卡成功,ID号:" & cardserno)
          Case -3: List1.AddItem ("回收消费用户卡失败:没有消费系统授权信息")
          Case -5: List1.AddItem ("回收消费用户卡失败:参数错")
          Case -7: List1.AddItem ("回收消费用户卡失败:找不到卡")
          Case -9: List1.AddItem ("回收消费用户卡失败:找不到消费授权卡")
          Case -11: List1.AddItem ("回收消费用户卡失败:用户卡错误")
          Case -12: List1.AddItem ("回收消费用户卡失败:读卡错")
          Case -13: List1.AddItem ("回收消费用户卡失败:写卡错")
          Case -15: List1.AddItem ("回收消费用户卡失败:不可识别的卡")
          Case Else: List1.AddItem ("回收消费用户卡失败")
        End Select
        
    End SubPrivate Sub cmdexit_Click()
        Unload Me
    End SubPrivate Sub cmdmj_Click()
        List1.Clear
        Dim serno As Long
        Dim cardno As Long
        Dim usertype As Long
        Dim cardserno As Long
        Dim cardtype As Long
        
        Beep
        serno = 1
        cardno = 100
        usertype = 1
        st = Init_Access_UserCard(icdev, serno, cardno, usertype, 20, cardserno)
        Select Case st
          Case 0: List1.AddItem ("初始化门禁考勤用户卡成功,ID号:" & cardserno)
          Case -4: List1.AddItem ("初始化门禁考勤用户卡失败:没有门禁系统授权信息")
          Case -5: List1.AddItem ("初始化门禁考勤用户卡失败:参数错")
          Case -7: List1.AddItem ("初始化门禁考勤用户卡失败:找不到卡")
          Case -8: List1.AddItem ("初始化门禁考勤用户卡失败:找不到门禁授权卡")
          Case -10: List1.AddItem ("初始化门禁考勤用户卡失败:系统卡错误")
          Case -11: List1.AddItem ("初始化门禁考勤用户卡失败:用户卡错误")
          Case -12: List1.AddItem ("初始化门禁考勤用户卡失败:读卡错")
          Case -13: List1.AddItem ("初始化门禁考勤用户卡失败:写卡错")
          Case -15: List1.AddItem ("初始化门禁考勤用户卡失败:不可识别的卡")
          Case Else: List1.AddItem ("初始化门禁考勤用户卡失败")
        End Select
        
        st = Query_Access_Card(icdev, cardtype, serno, cardno, cardserno, usertype, 20)
        Select Case st
          Case 0: List1.AddItem ("门禁考勤机使用卡查询成功,ID号:" & cardserno)
          Case -4: List1.AddItem ("门禁考勤机使用卡查询失败:没有门禁系统授权信息")
          Case -5: List1.AddItem ("门禁考勤机使用卡查询失败:参数错")
          Case -7: List1.AddItem ("门禁考勤机使用卡查询失败:找不到卡")
          Case -8: List1.AddItem ("门禁考勤机使用卡查询失败:找不到门禁授权卡")
          Case -11: List1.AddItem ("门禁考勤机使用卡查询失败:用户卡错误")
          Case -12: List1.AddItem ("门禁考勤机使用卡查询失败:读卡错")
          Case -13: List1.AddItem ("门禁考勤机使用卡查询失败:写卡错")
          Case -15: List1.AddItem ("门禁考勤机使用卡查询失败:不可识别的卡")
          Case Else: List1.AddItem ("门禁考勤机使用卡查询失败")
        End Select
        
        st = Init_Access_UserCard_UsePassword(icdev, cardserno, 20)
        Select Case st
          Case 0: List1.AddItem ("初始化用户密码成功!")
          Case -4: List1.AddItem ("初始化用户密码失败:没有门禁系统授权信息")
          Case -5: List1.AddItem ("初始化用户密码失败:参数错")
          Case -7: List1.AddItem ("初始化用户密码失败:找不到卡")
          Case -8: List1.AddItem ("初始化用户密码失败:找不到门禁授权卡")
          Case -11: List1.AddItem ("初始化用户密码失败:用户卡错误")
          Case -12: List1.AddItem ("初始化用户密码失败:读卡错")
          Case -13: List1.AddItem ("初始化用户密码失败:写卡错")
          Case -15: List1.AddItem ("初始化用户密码失败:不可识别的卡")
          Case Else: List1.AddItem ("初始化用户密码失败")
        End Select
        
        st = RST_Access_UserCard(icdev, cardserno, 20)
        Select Case st
          Case 0: List1.AddItem ("回收门禁考勤机用户卡成功!")
          Case -4: List1.AddItem ("回收门禁考勤机用户卡失败:没有门禁系统授权信息")
          Case -5: List1.AddItem ("回收门禁考勤机用户卡失败:参数错")
          Case -7: List1.AddItem ("回收门禁考勤机用户卡失败:找不到卡")
          Case -8: List1.AddItem ("回收门禁考勤机用户卡失败:找不到门禁授权卡")
          Case -11: List1.AddItem ("回收门禁考勤机用户卡失败:用户卡错误")
          Case -12: List1.AddItem ("回收门禁考勤机用户卡失败:读卡错")
          Case -13: List1.AddItem ("回收门禁考勤机用户卡失败:写卡错")
          Case -15: List1.AddItem ("回收门禁考勤机用户卡失败:不可识别的卡")
          Case Else: List1.AddItem ("回收门禁考勤机用户卡失败")
        End Select
        
    End Sub
      

  4.   

    Private Sub cmdopt_Click()
        Dim cardserno As Long
        Dim opt_num As Long
        
        Beep
        List1.Clear
        opt_num = 1
        st = Init_Pos_OPTCard(icdev, opt_num, 20, cardserno)
        Select Case st
          Case 0: List1.AddItem ("初始化消费机操作员卡成功,ID号:" & cardserno)
          Case -3: List1.AddItem ("初始化消费机操作员卡失败:没有消费系统授权信息")
          Case -5: List1.AddItem ("初始化消费机操作员卡失败:参数错")
          Case -7: List1.AddItem ("初始化消费机操作员卡失败:找不到卡")
          Case -9: List1.AddItem ("初始化消费机操作员卡失败:找不到消费授权卡")
          Case -11: List1.AddItem ("初始化消费机操作员卡失败:用户卡错误")
          Case -12: List1.AddItem ("初始化消费机操作员卡失败:读卡错")
          Case -13: List1.AddItem ("初始化消费机操作员卡失败:写卡错")
          Case -15: List1.AddItem ("初始化消费机操作员卡失败:不可识别的卡")
          Case Else: List1.AddItem ("初始化消费机操作员卡失败")
        End Select
     
        st = RST_Pos_OPTCard(icdev, cardserno, 20)
        Select Case st
          Case 0: List1.AddItem ("回收消费操作员卡成功,ID号:" & cardserno)
          Case -3: List1.AddItem ("回收消费操作员卡失败:没有消费系统授权信息")
          Case -5: List1.AddItem ("回收消费操作员卡失败:参数错")
          Case -7: List1.AddItem ("回收消费操作员卡失败:找不到卡")
          Case -9: List1.AddItem ("回收消费操作员卡失败:找不到消费授权卡")
          Case -11: List1.AddItem ("回收消费操作员卡失败:用户卡错误")
          Case -12: List1.AddItem ("回收消费操作员卡失败:读卡错")
          Case -13: List1.AddItem ("回收消费操作员卡失败:写卡错")
          Case -15: List1.AddItem ("回收消费操作员卡失败:不可识别的卡")
          Case Else: List1.AddItem ("回收消费操作员卡失败")
        End Select
    End SubPrivate Sub cmdsys_Click()
        Beep
        List1.Clear
        Dim userpwd As String
        'Dim commpwd(0 To 8) As Byte
        Dim commpwd As String * 8
        namename = "C:\Program Files\dassfxt.das"
        Dim systype%, mjsector%, mjcardtype%, xfsector%
        
        userpwd = "12345678"
        systype = 2
        mjsector = 1
        mjcardtype = 1
        xfsector = 4 '
        
        'st = Init_SysCard_N(icdev, userpwd, systype, mjsector, mjcardtype, xfsector, namename, commpwd)
        st = Init_SysCard(icdev, userpwd, systype, mjsector, mjcardtype, xfsector, commpwd) '初始化消费系统卡
        Select Case st
          Case 0: List1.AddItem ("初始化系统卡成功,通讯密码:" & commpwd)
          Case -5: List1.AddItem ("初始化系统卡失败:参数错")
          Case -6: List1.AddItem ("初始化系统卡失败:不能再初始化系统卡")
          Case -7: List1.AddItem ("初始化系统卡失败:找不到卡")
          Case -10: List1.AddItem ("初始化系统卡失败:系统卡错误")
          Case -11: List1.AddItem ("初始化系统卡失败:用户卡错误")
          Case -12: List1.AddItem ("初始化系统卡失败:读卡错")
          Case -13: List1.AddItem ("初始化系统卡失败:写卡错")
          Case -14: List1.AddItem ("初始化系统卡失败:建立授权文档错误")
          Case -15: List1.AddItem ("初始化系统卡失败:不可识别的卡")
          Case Else: List1.AddItem ("初始化系统卡失败")
        End Select
    End Sub
    Private Sub cmdxf_Click()
        Dim serno As Long
        Dim cardserno As Long
        Dim usertype As Long
        Dim cardno(0 To 9) As Byte
        Dim cardtype As Long
        Dim opt_num As Long
        Dim value As Long
        Dim count As Long
        
        Beep
        List1.Clear
        serno = 1
        usertype = 1
        st = Init_Pos_UserCard(icdev, serno, "0000000001", usertype, 20, cardserno)
        Select Case st
          Case 0: List1.AddItem ("初始化消费用户卡成功,ID号:" & cardserno)
          Case -3: List1.AddItem ("初始化消费用户卡失败:没有消费系统授权信息")
          Case -5: List1.AddItem ("初始化消费用户卡失败:参数错")
          Case -7: List1.AddItem ("初始化消费用户卡失败:找不到卡")
          Case -9: List1.AddItem ("初始化消费用户卡失败:找不到消费授权卡")
          Case -11: List1.AddItem ("初始化消费用户卡失败:用户卡错误")
          Case -12: List1.AddItem ("初始化消费用户卡失败:读卡错")
          Case -13: List1.AddItem ("初始化消费用户卡失败:写卡错")
          Case -15: List1.AddItem ("初始化消费用户卡失败:不可识别的卡")
          Case Else: List1.AddItem ("初始化消费用户卡失败")
        End Select    st = Query_Pos_Card(icdev, cardtype, opt_num, serno, cardno(0), cardserno, value, count, usertype, 20)
        Select Case st
          Case 0: List1.AddItem ("消费使用卡查询成功,ID号:" & cardserno & ",value:" & value)
          Case -3: List1.AddItem ("消费使用卡查询失败:没有消费系统授权信息")
          Case -5: List1.AddItem ("消费使用卡查询失败:参数错")
          Case -7: List1.AddItem ("消费使用卡查询失败:找不到卡")
          Case -9: List1.AddItem ("消费使用卡查询失败:找不到消费授权卡")
          Case -11: List1.AddItem ("消费使用卡查询失败:用户卡错误")
          Case -12: List1.AddItem ("消费使用卡查询失败:读卡错")
          Case -13: List1.AddItem ("消费使用卡查询失败:写卡错")
          Case -15: List1.AddItem ("消费使用卡查询失败:不可识别的卡")
          Case Else: List1.AddItem ("消费使用卡查询失败")
        End Select
        
        st = WRT_Pos_UserCard(icdev, 10000, cardserno, 20)
        Select Case st
          Case 0: List1.AddItem ("消费使用卡写值100成功,ID号:" & cardserno)
          Case -3: List1.AddItem ("消费使用卡写值100失败:没有消费系统授权信息")
          Case -5: List1.AddItem ("消费使用卡写值100失败:参数错")
          Case -7: List1.AddItem ("消费使用卡写值100失败:找不到卡")
          Case -9: List1.AddItem ("消费使用卡写值100失败:找不到消费授权卡")
          Case -10: List1.AddItem ("消费使用卡写值100失败:系统卡错误")
          Case -11: List1.AddItem ("消费使用卡写值100失败:用户卡错误")
          Case -12: List1.AddItem ("消费使用卡写值100失败:读卡错")
          Case -13: List1.AddItem ("消费使用卡写值100失败:写卡错")
          Case -15: List1.AddItem ("消费使用卡写值100失败:不可识别的卡")
          Case Else: List1.AddItem ("消费使用卡写值100失败")
        End Select    st = RST_Pos_UserCard(icdev, cardserno, 20)
        Select Case st
          Case 0: List1.AddItem ("回收消费用户卡成功,ID号:" & cardserno)
          Case -3: List1.AddItem ("回收消费用户卡失败:没有消费系统授权信息")
          Case -5: List1.AddItem ("回收消费用户卡失败:参数错")
          Case -7: List1.AddItem ("回收消费用户卡失败:找不到卡")
          Case -9: List1.AddItem ("回收消费用户卡失败:找不到消费授权卡")
          Case -11: List1.AddItem ("回收消费用户卡失败:用户卡错误")
          Case -12: List1.AddItem ("回收消费用户卡失败:读卡错")
          Case -13: List1.AddItem ("回收消费用户卡失败:写卡错")
          Case -15: List1.AddItem ("回收消费用户卡失败:不可识别的卡")
          Case Else: List1.AddItem ("回收消费用户卡失败")
        End Select
    End SubPrivate Sub Form_Load()
        Beep
        List1.Clear
        Dim aa(0 To 4) As Byte
        'Dim aa As String * 5
        Dim xfsec&
        Dim sysxf&
        Dim sysmj&
        Dim pwd(0 To 7) As Byte
        namename = "C:\Program Files\dassfxt.das"
        st = Load_Author(namename)
    '          Dim str As String
    '        str = ""
    '        Dim i As Integer
    '        For i = 0 To 4
    '            str = Trim(str) + Chr(aa(i))
    '        Next i
        If st <> 0 Then
            List1.AddItem "Load error"
        End If
        icdev = OpenComm(0)
        If icdev > 0 Then
            st = Check_Reader(icdev)
            If st <> 0 Then
                icdev = OpenComm(1)
                If icdev > 0 Then
                    st = Check_Reader(icdev)
                    If st <> 0 Then
                        MsgBox ("读写器通讯错!")
                        Unload Me
                    Else
                        List1.AddItem ("初始化串口成功,串口号:" & icdev)
                    End If
                Else
                    MsgBox ("读写器通讯错!")
                    Unload Me
                End If
            Else
                List1.AddItem ("初始化串口成功,串口号:" & icdev)
            End If
        Else
            MsgBox ("初始化串口错误!")
            Unload Me
        End If
    End SubPrivate Sub Form_Unload(Cancel As Integer)
        Beep
        st = CloseComm(icdev)
    End Sub