⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.frm

📁 磁条读写机
💻 FRM
📖 第 1 页 / 共 3 页
字号:
      BackStyle       =   0  'Transparent
      Caption         =   "测试区"
      Height          =   180
      Left            =   2880
      TabIndex        =   5
      Top             =   660
      Width           =   540
   End
   Begin VB.Label Label2 
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "发行代码"
      Height          =   180
      Left            =   2880
      TabIndex        =   2
      Top             =   240
      Width           =   720
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "厂商代码"
      Height          =   180
      Left            =   240
      TabIndex        =   1
      Top             =   240
      Width           =   720
   End
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

Option Explicit


Private Sub btnBeginPersionalize_Click()

'检查个人化状态
Dim hr As Long
Dim bPer As Long
hr = SC1604_TestPersonalize(hPort, bPer)
If hr <> 0 Then
    If bPer <> 0 Then
        MsgBox "卡已处在个人化状态!"
        Exit Sub
    End If
Else
    ReportError
End If

'开启个人化状态
If SC1604_BeginPersonalize(hPort) <> 0 Then
    MsgBox "操作完成!"
Else
    ReportError
    Exit Sub
End If

End Sub

Private Sub btnCancel_Click()
Unload Me
End Sub

Private Sub btnConnect_Click()
Dim ATR(4) As Byte
If 0 = SC_Connect(hPort, "SC1604", "", ATR(0)) Then
    ReportError
    Exit Sub
Else
    MsgBox "Connect OK!"
End If

Dim hr As Long
Dim buf(128) As Byte
Dim strHex As String

'读厂商代码
hr = SC1604_ReadZone(hPort, SC1604ZONE_FZ, 0, buf(0), 2)
If hr <> 0 Then
    strHex = Space(4)
    SCHelp_BytesToHexString buf(0), 2, strHex
    txtFactory.Text = strHex
Else
    ReportError
    Exit Sub
End If

'发行代码
hr = SC1604_ReadZone(hPort, SC1604ZONE_IZ, 0, buf(0), 8)
If hr = 0 Then
    ReportError
    Exit Sub
Else
    strHex = Space(16)
    SCHelp_BytesToHexString buf(0), 8, strHex
    txtIssue.Text = strHex
End If

'测试区
hr = SC1604_ReadZone(hPort, SC1604ZONE_MTZ, 0, buf(0), 2)
If hr = 0 Then
    ReportError
    Exit Sub
Else
    strHex = Space(4)
    SCHelp_BytesToHexString buf(0), 2, strHex
    txtMTZ.Text = strHex
End If


'读总密码错误计数区
hr = SC1604_ReadZone(hPort, SC1604ZONE_SCAC, 0, buf(0), 1)
If hr = 0 Then
    ReportError
    Exit Sub
Else
    strHex = Space(2)
    SCHelp_BytesToHexString buf(0), 1, strHex
    txtSCAC.Text = strHex
End If

End Sub

Private Sub btnDisConnect_Click()
If 0 = SC_DisConnect(hPort, 0) Then
    ReportError
End If
End Sub

Private Sub btnEndPersionalize_Click()
'检查个人化状态
Dim hr As Long
Dim bPer As Long
hr = SC1604_TestPersonalize(hPort, bPer)

If hr <> 0 Then
    If bPer = 0 Then
        MsgBox "卡不处在个人化状态!"
        Exit Sub
    End If
Else
    ReportError
End If

'关闭个人化状态
If SC1604_ClosePersonalize(hPort) <> 0 Then
    MsgBox "操作完成!"
Else
    ReportError
    Exit Sub
End If
End Sub

Private Sub btnFuse_Click()

If vbOK <> MsgBox("该操作不可逆,确实要执行熔丝操作吗?!", vbOKCancel) Then Exit Sub

If SC1604_Fuse(hPort) <> 0 Then
    MsgBox "熔丝操作完成!"
Else
    ReportError
End If

Exit Sub
ErrFlag:
    MsgBox Err.Description
End Sub

Private Sub btnReadAZ_Click()
Dim hr As Long
If cmbDataBuf.ListIndex < 0 Then Exit Sub
Me.MousePointer = vbHourglass

Dim PageLen As Long
PageLen = cmbDataBuf.ItemData(0) - CLng(txtAddrPage.Text) * 128
If PageLen > 128 Then PageLen = 128
 
Select Case cmbDataBuf.ListIndex
Case 0
    hr = SC1604_ReadZone(hPort, SC1604ZONE_AZ1, CLng(txtAddrPage.Text) * 128, DataBuffer(0), PageLen)
Case 1
    hr = SC1604_ReadZone(hPort, SC1604ZONE_AZ2, CLng(txtAddrPage.Text) * 128, DataBuffer(0), PageLen)
Case 2
    hr = SC1604_ReadZone(hPort, SC1604ZONE_AZ3, CLng(txtAddrPage.Text) * 128, DataBuffer(0), PageLen)
Case 3
    hr = SC1604_ReadZone(hPort, SC1604ZONE_AZ4, CLng(txtAddrPage.Text) * 128, DataBuffer(0), PageLen)
End Select

If hr <> 0 Then
    hexDataBuf.Text = GetDataBufferString(PageLen)
    MsgBox "读操作完成!"
Else
    ReportError
End If

Me.MousePointer = vbArrow

End Sub

Private Sub btnModifySC_Click()
Dim buf(128) As Byte
Dim hr As Long

SCHelp_HexStringToBytes txtSC.Text, buf(0), 2

hr = SC1604_ChangePwd(hr, SC1604ZONE_SC, buf(0), buf(1))
If hr <> 0 Then
    MsgBox "密码更改成功!"
Else
    ReportError
End If

End Sub

Private Sub btnReadCPZ_Click()
Dim hr As Long
Dim buf(128) As Byte
hr = SC1604_ReadZone(hPort, SC1604ZONE_CPZ, 0, buf(0), 8)
If hr = 0 Then
    ReportError
Else
    Dim strHex As String
    strHex = Space(16)
    SCHelp_BytesToHexString buf(0), 8, strHex
    txtCPZ.Text = strHex
    MsgBox "操作完成!"
End If
End Sub

Private Sub btnReadECX_Click()
Dim hr As Long
Dim buf(2) As Byte

Select Case cmbDataBuf.ListIndex
Case 0
    hr = SC1604_ReadZone(hPort, SC1604ZONE_EZ1, 0, buf(0), 2)
Case 1
    hr = SC1604_ReadZone(hPort, SC1604ZONE_EZ2, 0, buf(0), 2)
Case 2
    hr = SC1604_ReadZone(hPort, SC1604ZONE_EZ3, 0, buf(0), 2)
Case 3
    hr = SC1604_ReadZone(hPort, SC1604ZONE_EZ4, 0, buf(0), 2)
End Select

If hr = 0 Then
    ReportError
Else
    Dim strHex As String
    strHex = Space(4)
    SCHelp_BytesToHexString buf(0), 2, strHex
    txtECX.Text = strHex
    MsgBox "操作完成!"
End If
End Sub

Private Sub btnReadIZ_Click()
Dim hr As Long
Dim buf(8) As Byte
hr = SC1604_ReadZone(hPort, SC1604ZONE_IZ, 0, buf(0), 8)
If hr = 0 Then
    ReportError
Else
    Dim strHex As String
    strHex = Space(16)
    SCHelp_BytesToHexString buf(0), 8, strHex
    txtIssue.Text = strHex
    MsgBox "操作完成!"
End If

End Sub

Private Sub btnReadMTZ_Click()
Dim hr As Long
Dim buf(2) As Byte
hr = SC1604_ReadZone(hPort, SC1604ZONE_MTZ, 0, buf(0), 2)
If hr = 0 Then
    ReportError
Else
    Dim strHex As String
    strHex = Space(4)
    SCHelp_BytesToHexString buf(0), 2, strHex
    txtMTZ.Text = strHex
    MsgBox "操作完成!"
End If
End Sub

Private Sub btnReadSC_Click()
Dim hr As Long
Dim buf(2) As Byte
hr = SC1604_ReadZone(hPort, SC1604ZONE_SC, 0, buf(0), 2)
If hr = 0 Then
    ReportError
Else
    Dim strHex As String
    strHex = Space(4)
    SCHelp_BytesToHexString buf(0), 2, strHex
    txtSC.Text = strHex
    MsgBox "操作完成!"
End If
End Sub

Private Sub btnReadSCX_Click()
Dim hr As Long
Dim buf(2) As Byte

Select Case cmbDataBuf.ListIndex
Case 0
    hr = SC1604_ReadZone(hPort, SC1604ZONE_SC1, 0, buf(0), 2)
Case 1
    hr = SC1604_ReadZone(hPort, SC1604ZONE_SC2, 0, buf(0), 2)
Case 2
    hr = SC1604_ReadZone(hPort, SC1604ZONE_SC3, 0, buf(0), 2)
Case 3
    hr = SC1604_ReadZone(hPort, SC1604ZONE_SC4, 0, buf(0), 2)
End Select

If hr = 0 Then
    ReportError
Else
    Dim strHex As String
    strHex = Space(4)
    SCHelp_BytesToHexString buf(0), 2, strHex
    txtSCX.Text = strHex
    MsgBox "操作完成!"
End If
End Sub

Private Sub btnVerifySC_Click()
Dim buf(128) As Byte
Dim hr As Long

SCHelp_HexStringToBytes txtSC.Text, buf(0), 2

hr = SC1604_Verify(hr, SC1604ZONE_SC, buf(0), buf(1))
If hr Then
    MsgBox "校验成功!"
Else
    ReportError
End If

hr = SC1604_ReadZone(hPort, SC1604ZONE_SCAC, 0, buf(0), 1)
If hr <> 0 Then
    Dim strHex As String
    strHex = Space(2)
    SCHelp_BytesToHexString buf(0), 1, strHex
    txtSCAC.Text = strHex
End If

End Sub

Private Sub btnWriteAZ_Click()
Dim PageLen As Long
PageLen = cmbDataBuf.ItemData(0) - CLng(txtAddrPage.Text) * 128
If PageLen > 128 Then PageLen = 128
 
SCHelp_HexStringToBytes hexDataBuf.Text, DataBuffer(0), PageLen
Dim bOK As Long
Select Case cmbDataBuf.ListIndex
Case 0
    bOK = SC1604_WriteZone(hPort, SC1604ZONE_AZ1, CLng(txtAddrPage.Text) * 128, DataBuffer(0), PageLen)
Case 1
    bOK = SC1604_WriteZone(hPort, SC1604ZONE_AZ2, CLng(txtAddrPage.Text) * 128, DataBuffer(0), PageLen)
Case 2
    bOK = SC1604_WriteZone(hPort, SC1604ZONE_AZ3, CLng(txtAddrPage.Text) * 128, DataBuffer(0), PageLen)
Case 3
    bOK = SC1604_WriteZone(hPort, SC1604ZONE_AZ4, CLng(txtAddrPage.Text) * 128, DataBuffer(0), PageLen)
End Select

If bOK <> 0 Then
    MsgBox "写操作完成!"
Else
    ReportError
End If

End Sub

Private Sub btnWriteCPZ_Click()
Dim buf(128) As Byte
Dim hr As Long

SCHelp_HexStringToBytes txtCPZ.Text, buf(0), 8
hr = SC1604_WriteZone(hPort, SC1604ZONE_CPZ, 0, buf(0), 8)
If hr <> 0 Then
    MsgBox "写操作完成!"
Else
    ReportError
    Exit Sub
End If
End Sub

Private Sub btnWriteIZ_Click()
Dim buf(128) As Byte
Dim hr As Long

SCHelp_HexStringToBytes txtIssue.Text, buf(0), 8
hr = SC1604_WriteZone(hPort, SC1604ZONE_IZ, 0, buf(0), 8)
If hr <> 0 Then
    MsgBox "写操作完成!"
Else
    ReportError
    Exit Sub
End If
End Sub

Private Sub btnWriteMTZ_Click()
Dim buf(128) As Byte
Dim hr As Long

SCHelp_HexStringToBytes txtMTZ.Text, buf(0), 2
hr = SC1604_WriteZone(hPort, SC1604ZONE_MTZ, 0, buf(0), 2)
If hr <> 0 Then
    MsgBox "写操作完成!"
Else
    ReportError
    Exit Sub
End If
End Sub


Private Sub cmbCardType_Click()
If cmbCardType.ListIndex = 0 Then
    SC1604_SetSubType hPort, ICCSUBTYPE_SC1604N
    cmbDataBuf.ItemData(0) = 1195
    cmbDataBuf.ItemData(1) = 256
    cmbDataBuf.ItemData(2) = 256
    cmbDataBuf.ItemData(3) = 256
Else
    SC1604_SetSubType hPort, ICCSUBTYPE_SC1604E
    cmbDataBuf.ItemData(0) = 512
    cmbDataBuf.ItemData(1) = 512
    cmbDataBuf.ItemData(2) = 512
    cmbDataBuf.ItemData(3) = 512
End If

cmbDataBuf.ListIndex = 0

If (cmbDataBuf.ItemData(0) - CLng(txtAddrPage.Text) * 128) < 128 Then
    hexDataBuf.BufferSize = cmbDataBuf.ItemData(0) - CLng(txtAddrPage.Text) * 128
Else
    hexDataBuf.BufferSize = 128
End If

End Sub

Private Sub cmbDataBuf_click()
If cmbDataBuf.ListIndex < 0 Then Exit Sub
If (cmbDataBuf.ItemData(0) - CLng(txtAddrPage.Text) * 128) < 128 Then
    hexDataBuf.BufferSize = cmbDataBuf.ItemData(0) - CLng(txtAddrPage.Text) * 128
Else
    hexDataBuf.BufferSize = 128
End If
txtAddrPage.Text = "0"
udAddrPage.Max = (cmbDataBuf.ItemData(cmbDataBuf.ListIndex) + 127) \ 128 - 1
End Sub

Private Sub Form_Load()
OpenReader

cmbCardType.ListIndex = 0
'读子卡型
If SC1604_GetSubType(hPort) = ICCSUBTYPE_SC1604E Then
    cmbCardType.ListIndex = 1
Else
    cmbCardType.ListIndex = 0
End If


End Sub

Private Sub txtAddrPage_Change()
If (cmbDataBuf.ItemData(0) - CLng(txtAddrPage.Text) * 128) < 128 Then
    hexDataBuf.BufferSize = cmbDataBuf.ItemData(0) - CLng(txtAddrPage.Text) * 128
Else
    hexDataBuf.BufferSize = 128
End If
End Sub

Private Sub txtCPZ_KeyPress(KeyAscii As Integer)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -