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

📄 main.vb

📁 用GSM模块发送短信,是个发送短信的平台
💻 VB
字号:
Imports System.Data
Imports System.Data.OleDb
Public Class Main

    Dim blnInTimer As Boolean

    Private Sub Op_Open_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Op_Open.Click
        My.Forms.OpenModel.ShowDialog()
    End Sub

    Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            '分组
            Bind_comGroupList()
            '短信模板
            Bind_smsTemplateList()

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    ''' <summary>
    ''' 分组
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub Bind_comGroupList()
        Try
            comGroupList.DisplayMember = "GroupName"
            comGroupList.ValueMember = "ID"
            comGroupList.DataSource = FriendGroupClass.GetAllFriendGroup()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    ''' <summary>
    ''' 短信模板
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub Bind_smsTemplateList()
        Try
            smsTemplateList.DisplayMember = "SMSContent"
            smsTemplateList.ValueMember = "ID"
            smsTemplateList.DataSource = SMSTemplate.GetAllSMSTemplate
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
   
    Private Sub address_groupManager_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles address_groupManager.Click
        My.Forms.FriendGroup.ShowDialog()
    End Sub

    Private Sub address_addContact_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles address_addContact.Click
        My.Forms.AddContact.ShowDialog()
    End Sub

    Private Sub address_managerContact_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles address_managerContact.Click
        My.Forms.ManagerContact.ShowDialog()
    End Sub

    Private Sub smsTemplate_add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles smsTemplate_add.Click
        My.Forms.AddSMSTemplate.ShowDialog()
    End Sub

    Private Sub file_exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles file_exit.Click
        Application.Exit()
    End Sub

    Private Sub smsTemplate_manager_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles smsTemplate_manager.Click
        My.Forms.ManagerSMSTemplate.ShowDialog()
    End Sub

    Private Sub smsTemplateList_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles smsTemplateList.SelectedIndexChanged
        Try

            If (smsTemplateList.SelectedIndex > -1) Then
                Dim content As String = DirectCast(smsTemplateList.SelectedItem, SMSTemplate).SMSContent
                smsTemplateShowText.Text = content
            End If

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub btnSaveContentToTemplate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        Try
            Dim smsContent As String = txtSmsContentZone.Text.Trim()
            If (String.IsNullOrEmpty(smsContent)) Then
                MessageBox.Show("请输入短信内容", "提示")
                Exit Sub
            End If

            If (SMSTemplate.InsertSmsContent(smsContent)) Then
                MessageBox.Show("保存模板成功", "提示")
                Bind_smsTemplateList()
            Else
                MessageBox.Show("保存模板失败", "提示")
            End If

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

    End Sub

    ''' <summary>
    ''' 获取指定分组的联系人
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub btnGetGroup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetGroup.Click
        Try
            If (comGroupList.SelectedIndex > -1) Then
                Dim groupId As Integer = DirectCast(comGroupList.SelectedItem, FriendGroupClass).ID
                phoneCheckBox.DataSource = AddressBook.GetAddressbookByGroupId(groupId)
                phoneCheckBox.DisplayMember = "FriendName"
                phoneCheckBox.ValueMember = "MobilePhone"
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub btnSendSMS_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSendSMS.Click
        Try

            Dim smsContent As String = smsTemplateShowText.Text.Trim()
            If (String.IsNullOrEmpty(smsContent)) Then
                MessageBox.Show("请选择短信内容", "提示")
                Exit Sub
            End If

            Dim result As DialogResult = MessageBox.Show("确定要发送吗?", "发送提示", MessageBoxButtons.YesNo)
            If (result = Windows.Forms.DialogResult.Yes) Then

                statusReport.Items.Clear()

                Dim coll As Windows.Forms.CheckedListBox.CheckedItemCollection = phoneCheckBox.CheckedItems
                Dim itemChecked As AddressBook

                If coll.Count > 0 Then

                    btnSendSMS.Enabled = False

                    For Each itemChecked In coll

                        Dim intType As Short
                        Dim intCount As Short
                        Dim content(164) As Byte

                        Dim lngResult As Integer
                        Dim lastRecv(1024) As Byte
                        Dim intLastRecvLen As Short

                        intLastRecvLen = UBound(lastRecv) + 1

                        intCount = Common.GetUnicode(content, smsContent)
                        intType = SMS_UNICODE

                        lngResult = SendSMS(itemChecked.MobilePhone, content(0), intCount, intType)

                        If lngResult = 0 Then
                            statusReport.Items.Add(String.Format("{0} 发送成功", itemChecked.FriendName), True)
                        Else
                            statusReport.Items.Add(String.Format("{0} 发送失败", itemChecked.FriendName), False)
                            'GetLastRecvForDelete(lastRecv(0), intLastRecvLen)
                            'MessageBox.Show(Common.ErrCode(lngResult))
                        End If

                    Next

                    btnSendSMS.Enabled = True

                    phoneCheckBox.Refresh()

                End If

            End If

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub Main_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
        CloseSMSDevice()
    End Sub

    Private Sub btnSendSingSMS_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSendSingSMS.Click

        Try
            Dim smsNumber As String = singMobileTel.Text.Trim()
            If String.IsNullOrEmpty(smsNumber) Then
                MessageBox.Show("请输入手机号码", "提示")
                Exit Sub
            End If

            Dim strSingleSMSContent As String = txtSmsContentZone.Text.Trim()
            If String.IsNullOrEmpty(strSingleSMSContent) Then
                MessageBox.Show("请输入短信内容", "提示")
                Exit Sub
            End If

            Dim intType As Short
            Dim intCount As Short
            Dim content(164) As Byte

            Dim lngResult As Integer
            Dim lastRecv(1024) As Byte
            Dim intLastRecvLen As Short

            intLastRecvLen = UBound(lastRecv) + 1

            intCount = Common.GetUnicode(content, strSingleSMSContent)
            intType = SMS_UNICODE

            lngResult = SendSMS(smsNumber, content(0), intCount, intType)

            If lngResult = 0 Then
                MessageBox.Show("短信发送成功", "发送状态")
            Else
                GetLastRecvForDelete(lastRecv(0), intLastRecvLen)
                MessageBox.Show(Common.ErrCode(lngResult))
            End If

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

    End Sub

    Private Sub phone_ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles phone_ToolStripMenuItem.Click

        Try
            If (phoneCheckBox.SelectedIndex > -1) Then

                Dim entry As AddressBook = DirectCast(phoneCheckBox.SelectedItem, AddressBook)
                MessageBox.Show(entry.MobilePhone, "手机号码")

            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
        

    End Sub

    Private Sub details_ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles details_ToolStripMenuItem.Click
        Try
            If (phoneCheckBox.SelectedIndex > -1) Then

                Dim entry As AddressBook = DirectCast(phoneCheckBox.SelectedItem, AddressBook)

                Dim group As FriendGroupClass = New FriendGroupClass()
                group.ID = entry.FriendGroupId
                group.GroupName = entry.FriendGroupName

                Dim addContactInstance As AddContact = New AddContact(group)

                addContactInstance.Text = "联系人信息"
                addContactInstance.btnAddContact.Visible = False
                addContactInstance.txtFriendName.Text = entry.FriendName
                addContactInstance.txtTEL.Text = entry.TEL
                addContactInstance.txtMobilePhone.Text = entry.MobilePhone
                addContactInstance.txtEmail.Text = entry.Email
                addContactInstance.txtAddress.Text = entry.Address

                addContactInstance.ShowDialog()


            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Try
            Dim lngCount As Integer

            Dim modemResponse(256) As Byte
            Dim intOldCount As Short

            If blnInTimer Then Exit Sub

            blnInTimer = True

            lngCount = GetSMSCount
            intOldCount = reciveSMSList.Items.Count
            If lngCount > reciveSMSList.Items.Count Then
                FetchNewMessages(reciveSMSList.Items.Count, lngCount - reciveSMSList.Items.Count)
            End If
            blnInTimer = False
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Function ConvertToStringDouble(ByRef bytes() As Byte, ByRef intLen As Short) As String
        Dim i As Short
        Dim s As String = String.Empty
        Dim lngCode As Integer

        For i = 0 To intLen - 2 Step 2
            lngCode = bytes(i + 1)
            lngCode = lngCode * 256 + bytes(i)
            s = s & ChrW(lngCode)
        Next
        ConvertToStringDouble = s
    End Function

    Function ConvertToHexText(ByRef bytes() As Byte, ByRef intLen As Short) As String
        Dim i As Short
        Dim s As String = String.Empty

        For i = 0 To intLen - 1
            If bytes(i) < 16 Then
                s = s & " 0" & Hex(bytes(i))
            Else
                s = s & " " & Hex(bytes(i))
            End If
        Next
        ConvertToHexText = s
    End Function

    Private Sub FetchNewMessages(ByRef nStartIndex As Short, ByRef nSMSCount As Short)

        Dim lngResult As Integer
        Dim i As Short
        Dim content(164) As Byte
        Dim phoneNumber(15) As Byte
        Dim intContentType As Short
        Dim intContentLen As Short
        Dim intPhoneNumberLen As Short
        Dim s As String = String.Empty


        For i = nStartIndex To nStartIndex + nSMSCount - 1
            intContentLen = UBound(content) + 1
            intPhoneNumberLen = UBound(phoneNumber) + 1
            lngResult = GetSMS(i, content(0), intContentLen, phoneNumber(0), intPhoneNumberLen, intContentType)
            If lngResult = 0 Then
                Select Case intContentType
                    Case SMS_ASCII
                        s = Common.ConvertToStringSingle(content, intContentLen)
                    Case SMS_UNICODE
                        s = ConvertToStringDouble(content, intContentLen)
                    Case SMS_BINARY
                        s = ConvertToHexText(content, intContentLen)
                End Select

                reciveSMSList.Items.Add(String.Format("{0}  {1}", Common.ConvertToStringSingle(phoneNumber, intPhoneNumberLen), s))

            Else
                MessageBox.Show("获取短信出错!错误码=" & lngResult)
            End If
        Next
    End Sub

    Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
        Try

            If reciveSMSList.SelectedIndex > -1 Then
                Dim lngResult As Integer = DeleteSMS(reciveSMSList.SelectedIndex)
                If lngResult = 0 Then
                    reciveSMSList.Items.RemoveAt(reciveSMSList.SelectedIndex)
                Else
                    MessageBox.Show("删除短信时出错")
                End If
            End If
           
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

End Class

⌨️ 快捷键说明

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