📄 main.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 + -