📄 comm.frm
字号:
VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"
Begin VB.Form sCOMx
BorderStyle = 0 'None
Caption = "通信窗体"
ClientHeight = 120
ClientLeft = 0
ClientTop = 0
ClientWidth = 150
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 120
ScaleWidth = 150
ShowInTaskbar = 0 'False
StartUpPosition = 3 '窗口缺省
Visible = 0 'False
Begin VB.Timer VoiceTimer
Interval = 100
Left = 1080
Top = 0
End
Begin VB.Timer ComTimer
Interval = 100
Left = 600
Top = 0
End
Begin MSCommLib.MSComm CoMm
Left = 600
Top = 120
_ExtentX = 1005
_ExtentY = 1005
_Version = 393216
DTREnable = -1 'True
End
Begin MSWinsockLib.Winsock sSock
Left = 1560
Top = 0
_ExtentX = 741
_ExtentY = 741
_Version = 393216
End
End
Attribute VB_Name = "sCOMx"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub CoMm_OnComm()
Select Case CoMm.CommEvent
Case 1
Case 2
Case 3
Case 4
Case 5
ComTimer.Enabled = True
Case 6
End Select
End Sub
Private Sub Form_Load()
On Error Resume Next
'===Comm方式====
ComTimer.Enabled = False
CoMm.CommPort = sCOM
CoMm.Settings = "2400,N,8,1"
CoMm.InputMode = comInputModeText
CoMm.InputLen = 0
CoMm.RTSEnable = False
CoMm.RThreshold = 0
CoMm.PortOpen = True
CoMm.Output = "ATQ0V1W0S0=1&C1&D2" + Chr$(13)
'===Winsock方式====
sSock.LocalPort = 2000
sSock.Listen
End Sub
'===Comm方式====
Private Sub ComTimer_Timer()
On Error Resume Next
Dim aAa$, Tt, Ss$, ZfyBH, Zfy
aAa$ = CoMm.Input
tAJZ = " "
Tt = InStr(aAa$, Chr$(13))
If Tt = 0 Then Exit Sub
Ss$ = left(aAa$, 3)
If BuSy = 1 And Mid(aAa$, 3, 10) = "NO CARRIER" Then TV_Exit
Select Case Ss$
Case "AJZ"
If Tt = 5 Then tAJZ = Mid(aAa$, 4, 1)
Ajz = UCase(IIf(InStr("0123456789*#CSH", tAJZ) > 0, tAJZ, " "))
'====用户是否挂机========
If BuSy = 1 And ZjBZ = 1 And Ajz = "S" Then TV_Exit
If Ajz = "H" Then
If ZjBZ = 0 Then
SendCMD "STOP"
ElseIf BuSy = 0 Then
SendCMD "PAUSE"
ElseIf BuSy = 1 Then
SendCMD "BUSY"
End If
End If
Case "ZFY"
If Tt > 9 Then
ZfyBH = Mid(aAa$, 4, 4)
Zfy = Mid(aAa$, 8, Tt - 8)
If UCase(ZfyBH) = "AAAA" Then
YfZm = YfZm + " " + Zfy
ElseIf UCase(ZfyBH) = "BBBB" Then
YfZm = Zfy
Else
DB.Execute "insert into zfy values ('" + ZfyBH + "','" + Zfy + "');"
End If
End If
End Select
End Sub
'===电话语音卡定时检测按键====
Private Sub VoiceTimer_Timer()
On Error Resume Next
Dim Teling As String
Dim TelLong As Long
Dim IiIi
Dim SigCount As Long, SigLen As Long, SigType As Long
Teling = String(24, 0)
If ChannelNum = 0 Then Exit Sub
If ZjBZ = 0 Then
If TV_RingDetect(sCOM) > 0 Then
For IiIi = 0 To 10000: DoEvents: Next IiIi
TelLong = TV_ReceiveCallingID(sCOM, Teling, 24)
TV_OffHookCtrl (sCOM)
TV_StartPlayFile CInt(sCOM), App.Path + "\welcome", 1, LONG_MAX
TV_StartTimer sCOM, 30000
For IiIi = 0 To 10000: DoEvents: Next IiIi
Ajz = "C"
ZjBZ = 1
End If
Else
SigType = TV_CheckSignal(sCOM, SigCount, SigLen)
If (SigType = SIG_BUSY1 Or SigType = SIG_BUSY2) And SigCount >= 3 Then
TV_Exit
ElseIf Ajz = " " Then
Ajz = Chr(CInt(TV_GetDTMFChar(sCOM)))
End If
End If
End Sub
'======
Private Sub sSock_Close()
On Error Resume Next
sSock.Close
'===Winsock方式====
sSock.LocalPort = 2000
sSock.Listen
End Sub
Private Sub sSock_Connect()
TVsong.TVsongTimer.Enabled = True
End Sub
Private Sub sSock_ConnectionRequest(ByVal requestID As Long)
On Error Resume Next
If sSock.State <> 0 Then sSock.Close
sSock.Accept requestID
If ZjBZ = 0 Then
sSock.SendData "STOP"
TVsong.TVsongTimer.Enabled = True
ElseIf BuSy = 0 Then
sSock.SendData "PAUSE"
ElseIf BuSy = 1 Then
sSock.SendData "BUSY"
TVsong.TVsongTimer.Enabled = True
End If
End Sub
Private Sub sSock_DataArrival(ByVal bytesTotal As Long)
Dim aAa$, Tt, Ss$, ZfyBH, Zfy
sSock.GetData aAa$, vbString
Ss$ = left(aAa$, 3)
Select Case Ss$
Case "AJZ"
tAJZ = Mid(aAa$, 4, 1)
Ajz = UCase(IIf(InStr("0123456789*#CSH", tAJZ) > 0, tAJZ, " "))
'If AJZ = "C" Then TVsong.TVsongTimer.Enabled = True
'====用户是否挂机========
If BuSy = 1 And ZjBZ = 1 And Ajz = "S" Then TV_Exit
If Ajz = "H" Then
If ZjBZ = 0 Then
sSock.SendData "STOP"
ElseIf BuSy = 0 Then
sSock.SendData "PAUSE"
ElseIf BuSy = 1 Then
sSock.SendData "BUSY"
End If
TVsong.TVsongTimer.Enabled = True
End If
Case "ZFY"
ZfyBH = Mid(aAa$, 4, 4)
Zfy = Mid(aAa$, 8)
If UCase(ZfyBH) = "AAAA" Then
YfZm = YfZm + " " + Zfy
ElseIf UCase(ZfyBH) = "BBBB" Then
YfZm = Zfy
Else
DB.Execute "insert into zfy values ('" + ZfyBH + "','" + Zfy + "');"
End If
End Select
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -