第一次提交至Git
This commit is contained in:
908
AUTS_ServiceControler/FrmMain.vb
Normal file
908
AUTS_ServiceControler/FrmMain.vb
Normal file
@@ -0,0 +1,908 @@
|
||||
Imports UTS_Core.UTSModule
|
||||
Imports UTS_Core.UTSModule.Service
|
||||
|
||||
Public Class FrmMain
|
||||
|
||||
#Region "窗体初始化"
|
||||
''' <summary>
|
||||
''' 窗体加载时启动项
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
InitSerName()
|
||||
|
||||
InitTabMain()
|
||||
|
||||
InitGrid()
|
||||
|
||||
Text = $"{Application.ProductName} {Application.ProductVersion}"
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub InitTabMain()
|
||||
TabTasks.SizeMode = TabSizeMode.Fixed '隐藏TabControl的表头
|
||||
TabTasks.ItemSize = New Size(0, 1)
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary> 初始化本地IP </summary>
|
||||
Private Sub InitSerName()
|
||||
TsCboServiceName.Items.Clear()
|
||||
|
||||
InitUtsServices()
|
||||
|
||||
For Each service As UtsService In _services
|
||||
TsCboServiceName.Items.Add(service.Name)
|
||||
Next
|
||||
|
||||
If TsCboServiceName.Items.Count > 0 Then TsCboServiceName.SelectedIndex = 0
|
||||
End Sub
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
#Region "服务控制信息"
|
||||
''' <summary>
|
||||
''' 所有服务的信息
|
||||
''' </summary>
|
||||
Private _services As List(Of UtsService)
|
||||
|
||||
Private _service As UtsService
|
||||
|
||||
|
||||
Private Sub InitUtsServices()
|
||||
_services = New List(Of UtsService)()
|
||||
|
||||
Try
|
||||
_services.Add(New UtsService(UtsRegistry.UpdateServiceName, UtsRegistry.UpdateServiceVersion))
|
||||
Catch ex As Exception
|
||||
Console.WriteLine($"Init UpdateService Error:{ex.Message}")
|
||||
End Try
|
||||
|
||||
|
||||
Try
|
||||
_services.Add(New UtsService(UtsRegistry.DataServiceName, UtsRegistry.DataServiceVersion))
|
||||
Catch ex As Exception
|
||||
Console.WriteLine($"Init DataService Error:{ex.Message}")
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 选择下拉框改变值
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsCboServiceName_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TsCboServiceName.SelectedIndexChanged
|
||||
_service = _services(TsCboServiceName.SelectedIndex)
|
||||
|
||||
TssLblServiceName.Text = $"{_service.Name} {_service.Version} :"
|
||||
UpdateServiceStatusTip(_service.ServicesStatus())
|
||||
End Sub
|
||||
|
||||
Private Sub TsBtnReflushServices_Click(sender As Object, e As EventArgs) Handles TsBtnReflushServices.Click
|
||||
InitSerName()
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 更新服务状态
|
||||
''' </summary>
|
||||
''' <param name="status"></param>
|
||||
Private Sub UpdateServiceStatusTip(status As UtsService.ServiceStatusEnum)
|
||||
Static tipColor() As Color = {Color.Gray, Color.Red, Color.Aquamarine, Color.Blue, Color.Orange, Color.Blue, Color.Green}
|
||||
|
||||
TssLblServiceStatus.ForeColor = tipColor(status)
|
||||
TssLblServiceStatus.Text = $"{ UtsService.GetEnumDescription(status)}"
|
||||
|
||||
UpdateServiceEnabled(status)
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Sub UpdateServiceEnabled(status As UtsService.ServiceStatusEnum)
|
||||
If status <= UtsService.ServiceStatusEnum.Nonentity Then '服务不存在状态
|
||||
TsBtnStartService.Enabled = False
|
||||
TsBtnCloseService.Enabled = False
|
||||
TsBtnRestartService.Enabled = False
|
||||
TsBtnConnService.Enabled = False
|
||||
TsBtnServiceInstall.Enabled = False
|
||||
TsBtnServiceUninstall.Enabled = False
|
||||
|
||||
If _tcpClient IsNot Nothing Then
|
||||
_tcpClient.Close()
|
||||
UpdateTcpTip(_tcpClient.IsOpen) '更新连接提示
|
||||
UpdateConnectionEnabled(_tcpClient.IsOpen) '根据连接,设置控件可操作性
|
||||
End If
|
||||
ElseIf status <= UtsService.ServiceStatusEnum.StartPending Then '服务存在未启用状态
|
||||
TsBtnStartService.Enabled = True
|
||||
TsBtnCloseService.Enabled = True
|
||||
TsBtnRestartService.Enabled = True
|
||||
TsBtnConnService.Enabled = False
|
||||
|
||||
TsBtnServiceInstall.Enabled = True
|
||||
TsBtnServiceUninstall.Enabled = True
|
||||
|
||||
If _tcpClient IsNot Nothing Then
|
||||
_tcpClient.Close()
|
||||
UpdateTcpTip(_tcpClient.IsOpen) '更新连接提示
|
||||
UpdateConnectionEnabled(_tcpClient.IsOpen) '根据连接,设置控件可操作性
|
||||
End If
|
||||
Else '服务存在且启用状态
|
||||
TsBtnStartService.Enabled = True
|
||||
TsBtnCloseService.Enabled = True
|
||||
TsBtnRestartService.Enabled = True
|
||||
TsBtnConnService.Enabled = True
|
||||
TsBtnServiceInstall.Enabled = True
|
||||
TsBtnServiceUninstall.Enabled = True
|
||||
|
||||
Try
|
||||
If _tcpClient Is Nothing Then
|
||||
InitTcpClient()
|
||||
_tcpClient.Open()
|
||||
|
||||
ElseIf _tcpClient.IsOpen = False Then
|
||||
_tcpClient.Open()
|
||||
|
||||
End If
|
||||
|
||||
UpdateTcpTip(_tcpClient.IsOpen) '更新连接提示
|
||||
UpdateConnectionEnabled(_tcpClient.IsOpen) '根据连接,设置控件可操作性
|
||||
Catch ex As Exception
|
||||
Console.WriteLine($"Tcp Client Open Error:{ex.Message}")
|
||||
End Try
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 工具栏检测服务按键
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsBtnTestingServices_Click(sender As Object, e As EventArgs) Handles TsBtnTestingServices.Click
|
||||
If _service Is Nothing Then Return
|
||||
UpdateServiceStatusTip(_service.ServicesStatus())
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 工具栏点击一键安装
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsBtnServiceInstall_Click(sender As Object, e As EventArgs) Handles TsBtnServiceInstall.Click
|
||||
Try
|
||||
_service.InstallService()
|
||||
MsgBox($"{_service.Name}服务安装成功!")
|
||||
Catch ex As Exception
|
||||
MsgBox($"InstallService Error:{ex.Message}")
|
||||
End Try
|
||||
UpdateServiceStatusTip(_service.ServicesStatus())
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 工具栏卸载按键
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsBtnServiceUninstall_Click(sender As Object, e As EventArgs) Handles TsBtnServiceUninstall.Click
|
||||
If MsgBox($"是否确定卸载操作", MsgBoxStyle.OkCancel) <> MsgBoxResult.Ok Then Return
|
||||
|
||||
Try
|
||||
_service.UnInstallService()
|
||||
MsgBox($"{_service.Name}服务卸载成功!")
|
||||
Catch ex As Exception
|
||||
MsgBox($"UnInstallService Error:{ex.Message}")
|
||||
End Try
|
||||
UpdateServiceStatusTip(_service.ServicesStatus())
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 工具栏启用服务
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsBtnStartService_Click(sender As Object, e As EventArgs) Handles TsBtnStartService.Click
|
||||
Try
|
||||
_service.StartService()
|
||||
Catch ex As Exception
|
||||
MsgBox($"StartService Error:{ex.Message}")
|
||||
End Try
|
||||
UpdateServiceStatusTip(_service.ServicesStatus())
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 工具栏停止服务
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsBtnCloseService_Click(sender As Object, e As EventArgs) Handles TsBtnCloseService.Click
|
||||
Try
|
||||
_service.StopService()
|
||||
Catch ex As Exception
|
||||
MsgBox($"StopService Error:{ex.Message}")
|
||||
End Try
|
||||
UpdateServiceStatusTip(_service.ServicesStatus())
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 工具栏重启服务
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsBtnRestartService_Click(sender As Object, e As EventArgs) Handles TsBtnRestartService.Click
|
||||
Try
|
||||
_service.RestartService()
|
||||
Catch ex As Exception
|
||||
MsgBox($"RestartService Error:{ex.Message}")
|
||||
End Try
|
||||
UpdateServiceStatusTip(_service.ServicesStatus())
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
#Region "任务表格操作"
|
||||
Enum ColNameEnum
|
||||
Sn
|
||||
Act
|
||||
Type
|
||||
Name
|
||||
Max
|
||||
End Enum
|
||||
|
||||
|
||||
Private Sub InitGrid()
|
||||
With Grid1
|
||||
.NewFile()
|
||||
.BorderStyle = FlexCell.BorderStyleEnum.None
|
||||
.BackColorBkg = Color.Transparent
|
||||
.DisplayRowNumber = True
|
||||
.AutoRedraw = False
|
||||
.ExtendLastCol = True
|
||||
.Rows = 1
|
||||
.Cols = ColNameEnum.Max
|
||||
|
||||
.Column(ColNameEnum.Sn).Width = 20
|
||||
.Column(ColNameEnum.Act).Width = 30
|
||||
.Column(ColNameEnum.Type).Width = 40
|
||||
.Column(ColNameEnum.Act).CellType = FlexCell.CellTypeEnum.CheckBox
|
||||
|
||||
For col As Integer = 0 To ColNameEnum.Max - 1
|
||||
.Cell(0, col).Text = [Enum].GetName(GetType(ColNameEnum), col) '设置列名
|
||||
Next
|
||||
|
||||
.AutoRedraw = True
|
||||
.Refresh()
|
||||
End With
|
||||
End Sub
|
||||
|
||||
Private Sub Grid1_SelChange(sender As Object, e As FlexCell.Grid.SelChangeEventArgs) Handles Grid1.SelChange
|
||||
If e.FirstRow > 0 Then
|
||||
TabTasks.SelectedIndex = e.FirstRow - 1
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
#Region "服务通讯"
|
||||
Private _tcpClient As AutsTcpClient
|
||||
|
||||
''' <summary>
|
||||
''' 连接服务
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsBtnConnService_Click(sender As Object, e As EventArgs) Handles TsBtnConnService.Click
|
||||
UpdateTcpClient()
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 初始化网络套接字
|
||||
''' 注册表中无端口号时会引发异常
|
||||
''' </summary>
|
||||
Private Sub InitTcpClient()
|
||||
Static remoteIp As String = "127.0.0.1"
|
||||
Static remotePort As Integer = -1 '默认55533,实际使用从注册表中获取
|
||||
|
||||
remotePort = CInt(UtsRegistry.DataServicePort)
|
||||
|
||||
_tcpClient = New AutsTcpClient(remoteIp, remotePort)
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub UpdateTcpClient()
|
||||
Dim tcpConnect As Boolean
|
||||
If _tcpClient IsNot Nothing AndAlso _tcpClient.IsOpen Then
|
||||
_tcpClient.Close()
|
||||
tcpConnect = False
|
||||
Else
|
||||
Try
|
||||
InitTcpClient()
|
||||
_tcpClient.Open()
|
||||
tcpConnect = True
|
||||
Catch ex As Exception
|
||||
Console.WriteLine($"Open Tcp Client Error:{ex.Message}")
|
||||
tcpConnect = False
|
||||
End Try
|
||||
End If
|
||||
|
||||
UpdateTcpTip(tcpConnect) '更新连接提示
|
||||
UpdateConnectionEnabled(tcpConnect) '根据连接,设置控件可操作性
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 更新网络的提示状态
|
||||
''' </summary>
|
||||
''' <param name="connected">是否连接成功</param>
|
||||
Private Sub UpdateTcpTip(connected As Boolean)
|
||||
If connected Then
|
||||
TssLblConnState.Text = $"已建立TCP连接!"
|
||||
TssLblConnState.ForeColor = Color.Green
|
||||
|
||||
TsBtnConnService.Text = $"断连服务"
|
||||
TsBtnConnService.ForeColor = Color.Red
|
||||
Else
|
||||
TssLblConnState.Text = $"无TCP连接!"
|
||||
TssLblConnState.ForeColor = Color.Red
|
||||
|
||||
TsBtnConnService.Text = $"连接服务"
|
||||
TsBtnConnService.ForeColor = Color.Green
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub UpdateConnectionEnabled(connected As Boolean)
|
||||
TsBtDelTasks.Enabled = connected
|
||||
TsBtnAddTasks.Enabled = connected
|
||||
TsBtnStartTasks.Enabled = connected
|
||||
TsBtnStopTasks.Enabled = connected
|
||||
TsBtnRestartTasks.Enabled = connected
|
||||
TsBtnGetTask.Enabled = connected
|
||||
TsBtnSetTasks.Enabled = connected
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
#Region "任务命令"
|
||||
''' <summary> 公共用户 </summary>
|
||||
Private _user As String = "Root"
|
||||
|
||||
Private _tasks As New TaskForms
|
||||
|
||||
''' <summary>
|
||||
''' 校验回复字符串
|
||||
''' </summary>
|
||||
''' <param name="replyString"></param>
|
||||
''' <param name="cmdName"></param>
|
||||
''' <returns></returns>
|
||||
Private Function CheckReplyString(replyString As String, cmdName As TaskJsonParam.CmdNamesEnum) As TaskJsonParam
|
||||
If String.IsNullOrWhiteSpace(replyString) Then Return Nothing
|
||||
|
||||
Dim replyParam As TaskJsonParam
|
||||
replyParam = TaskJsonParam.DeserializeFormJson(replyString)
|
||||
|
||||
If replyParam.CmdName <> cmdName Then Return Nothing
|
||||
|
||||
Return replyParam
|
||||
End Function
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 添加任务
|
||||
''' </summary>
|
||||
Private Sub AddTasks()
|
||||
_addFrom = New FrmAddTask
|
||||
If _addFrom.ShowDialog <> DialogResult.OK Then Return
|
||||
|
||||
Dim taskParam As New TaskJsonParam(TaskJsonParam.CmdNamesEnum.AddTasks, _user, Application.ProductName)
|
||||
taskParam.TasksInfo.Add(_addFrom.TaskForm.GetParams())
|
||||
ServiceCommunicator(taskParam)
|
||||
|
||||
_addFrom.Dispose()
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub AddTaskGrid(taskStatus As String, taskType As String, taskName As String)
|
||||
Grid1.AddItem("")
|
||||
Grid1.Cell(Grid1.Rows - 1, ColNameEnum.Act).Text = CStr(IIf(taskStatus = "Start", "1", "0"))
|
||||
Grid1.Cell(Grid1.Rows - 1, ColNameEnum.Type).Text = taskType
|
||||
Grid1.Cell(Grid1.Rows - 1, ColNameEnum.Name).Text = taskName
|
||||
Grid1.Cell(Grid1.Rows - 1, ColNameEnum.Sn).SetFocus()
|
||||
End Sub
|
||||
|
||||
Private Sub ChangeTaskGrid(taskStatus As String, taskType As String, taskName As String)
|
||||
Grid1.Cell(Grid1.Rows - 1, ColNameEnum.Act).Text = CStr(IIf(taskStatus = "Start", "1", "0"))
|
||||
Grid1.Cell(Grid1.Rows - 1, ColNameEnum.Type).Text = taskType
|
||||
Grid1.Cell(Grid1.Rows - 1, ColNameEnum.Name).Text = taskName
|
||||
Grid1.Cell(Grid1.Rows - 1, ColNameEnum.Sn).SetFocus()
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub AddTaskForm(taskForm As ITaskForm)
|
||||
Dim tp As New TabPage
|
||||
taskForm.ShowForm(tp)
|
||||
TabTasks.TabPages.Add(tp)
|
||||
End Sub
|
||||
|
||||
Private Sub RemoveTaskGrid(index As Integer)
|
||||
Grid1.Row(index + 1).Delete()
|
||||
End Sub
|
||||
|
||||
Private Sub RemoveAtTaskForm(index As Integer)
|
||||
TabTasks.TabPages.RemoveAt(index)
|
||||
End Sub
|
||||
|
||||
Private Sub StartTaskForm(index As Integer)
|
||||
Grid1.Cell(index + 1, ColNameEnum.Act).Text = "1"
|
||||
End Sub
|
||||
|
||||
Private Sub StopTaskForm(index As Integer)
|
||||
Grid1.Cell(index + 1, ColNameEnum.Act).Text = "0"
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 删除任务
|
||||
''' </summary>
|
||||
Private Sub DeleteTasks()
|
||||
If MsgBox("是否删除当前任务?", MsgBoxStyle.OkCancel) <> MsgBoxResult.Ok Then Return
|
||||
|
||||
Dim taskParam As New TaskJsonParam(TaskJsonParam.CmdNamesEnum.DeleteTasks, _user, Application.ProductName)
|
||||
taskParam.TasksName.Add(Grid1.Cell(TabTasks.SelectedIndex + 1, ColNameEnum.Name).Text)
|
||||
ServiceCommunicator(taskParam)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 开启任务
|
||||
''' </summary>
|
||||
Private Sub StartTasks()
|
||||
Dim taskParam As New TaskJsonParam(TaskJsonParam.CmdNamesEnum.StartTasks, _user, Application.ProductName)
|
||||
taskParam.TasksName.Add(Grid1.Cell(TabTasks.SelectedIndex + 1, ColNameEnum.Name).Text)
|
||||
ServiceCommunicator(taskParam)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 暂停任务
|
||||
''' </summary>
|
||||
Private Sub StopTasks()
|
||||
Dim taskParam As New TaskJsonParam(TaskJsonParam.CmdNamesEnum.StopTasks, _user, Application.ProductName)
|
||||
taskParam.TasksName.Add(Grid1.Cell(TabTasks.SelectedIndex + 1, ColNameEnum.Name).Text)
|
||||
ServiceCommunicator(taskParam)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 获取任务参数
|
||||
''' </summary>
|
||||
Private Sub GetTasksParam()
|
||||
Dim taskParam As New TaskJsonParam(TaskJsonParam.CmdNamesEnum.GetTasks, _user, Application.ProductName)
|
||||
taskParam.TasksName.Add(Grid1.Cell(TabTasks.SelectedIndex + 1, ColNameEnum.Name).Text)
|
||||
ServiceCommunicator(taskParam)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 设置任务参数
|
||||
''' </summary>
|
||||
Private Sub SetTasksParam()
|
||||
Dim taskParam As New TaskJsonParam(TaskJsonParam.CmdNamesEnum.SetTasks, _user, Application.ProductName)
|
||||
taskParam.TasksName.Add(Grid1.Cell(TabTasks.SelectedIndex + 1, ColNameEnum.Name).Text)
|
||||
taskParam.TasksInfo.Add(_tasks.GetParams(TabTasks.SelectedIndex))
|
||||
ServiceCommunicator(taskParam)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 重启任务,立即执行
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsBtnRestartTasks_Click(sender As Object, e As EventArgs) Handles TsBtnRestartTasks.Click
|
||||
Dim taskParam As New TaskJsonParam(TaskJsonParam.CmdNamesEnum.RestartTasks, _user, Application.ProductName)
|
||||
taskParam.TasksName.Add(Grid1.Cell(TabTasks.SelectedIndex + 1, ColNameEnum.Name).Text)
|
||||
ServiceCommunicator(taskParam)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 工具栏添加任务
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsBtnAddTasks_Click(sender As Object, e As EventArgs) Handles TsBtnAddTasks.Click, CmsBtnAddTasks.Click
|
||||
AddTasks()
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 工具栏删除任务
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsBtDelTasks_Click(sender As Object, e As EventArgs) Handles TsBtDelTasks.Click, CmsBtnDeleteTasks.Click
|
||||
DeleteTasks()
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 工具栏开启任务
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsBtnStartTasks_Click(sender As Object, e As EventArgs) Handles TsBtnStartTasks.Click, CmsBtnStartTasks.Click
|
||||
StartTasks()
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 工具栏暂停任务
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsBtnStopTasks_Click(sender As Object, e As EventArgs) Handles TsBtnStopTasks.Click, CmsBtnStopTasks.Click
|
||||
StopTasks()
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 工具栏获取任务参数
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsBtnGetTask_Click(sender As Object, e As EventArgs) Handles TsBtnGetTask.Click, CmsBtnGetTasks.Click
|
||||
GetTasksParam()
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 工具栏设置任务参数
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsBtnSetTasks_Click(sender As Object, e As EventArgs) Handles TsBtnSetTasks.Click, CmsBtnSetTasks.Click
|
||||
SetTasksParam()
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 右键菜单全部开启任务
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub CmsBtnStartAllTasks_Click(sender As Object, e As EventArgs) Handles CmsBtnStartAllTasks.Click
|
||||
Dim taskParam As New TaskJsonParam(TaskJsonParam.CmdNamesEnum.StartAllTasks, _user, Application.ProductName)
|
||||
ServiceCommunicator(taskParam)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 右键菜单全部暂停任务
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub CmsBtnStopAllTasks_Click(sender As Object, e As EventArgs) Handles CmsBtnStopAllTasks.Click
|
||||
Dim taskParam As New TaskJsonParam(TaskJsonParam.CmdNamesEnum.StopAllTasks, _user, Application.ProductName)
|
||||
ServiceCommunicator(taskParam)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 右键菜单全部删除任务
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub CmsBtnDeleteAllTasks_Click(sender As Object, e As EventArgs) Handles CmsBtnDeleteAllTasks.Click
|
||||
If MsgBox("是否删除所有任务?", MsgBoxStyle.OkCancel) <> MsgBoxResult.Ok Then Return
|
||||
Dim taskParam As New TaskJsonParam(TaskJsonParam.CmdNamesEnum.DeleteAllTasks, _user, Application.ProductName)
|
||||
ServiceCommunicator(taskParam)
|
||||
End Sub
|
||||
|
||||
|
||||
''' <summary>
|
||||
''' 右键菜单获取全部任务参数
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub CmsBtnGetAllTasks_Click(sender As Object, e As EventArgs) Handles CmsBtnGetAllTasks.Click, CmsBtnRefreshList.Click
|
||||
Dim taskParam As New TaskJsonParam(TaskJsonParam.CmdNamesEnum.GetAllTasks, _user, Application.ProductName)
|
||||
ServiceCommunicator(taskParam)
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 与服务通讯,包含发送,接收,处理过程
|
||||
'''→◆Recv: '接收
|
||||
'''←◇Send: '发送
|
||||
''' </summary>
|
||||
''' <param name="taskParam"></param>
|
||||
Private Sub ServiceCommunicator(taskParam As TaskJsonParam)
|
||||
Dim aTime As String = Date.Now.ToString("yyyy-MM-dd HH:mm:ss:fff ")
|
||||
Try
|
||||
Dim jsonString As String = TaskJsonParam.SerializeToJson(taskParam) & vbCrLf
|
||||
_tcpClient.WriteJsonString(jsonString) '发送数据
|
||||
|
||||
AppendTextTip($"←◇Send[{aTime}]{vbLf}", Color.Gray)
|
||||
AppendTextTip($"{jsonString}{vbCrLf}", Color.Blue)
|
||||
Catch ex As Exception
|
||||
MsgBox($"SendJsonString Error:{ex.Message}")
|
||||
Return
|
||||
End Try
|
||||
|
||||
Dim replyString As String = _tcpClient.ReadJsonString()
|
||||
|
||||
Try
|
||||
Dim replyParam As TaskJsonParam = CheckReplyString(replyString, taskParam.CmdName) '接收数据校验
|
||||
AppendTextTip($"→◆Recv[{aTime}]{vbLf}", Color.Gray)
|
||||
AppendTextTip($"{replyString}{vbCrLf}", Color.Green)
|
||||
|
||||
If replyParam.CmdStatus = TaskJsonParam.CmdStatusEnum.Pass.ToString() Then
|
||||
DealFunction(replyParam)
|
||||
TssLblExcuteTip.Text = $"Cmd:{replyParam.CmdName},Excute Pass!"
|
||||
TssLblExcuteTip.ForeColor = Color.Green
|
||||
Else
|
||||
TssLblExcuteTip.Text = $"Cmd:{replyParam.CmdName} {replyParam.CmdStatus},Msg:{replyParam.CmdMsg}"
|
||||
TssLblExcuteTip.ForeColor = Color.Red
|
||||
End If
|
||||
Catch ex As Exception
|
||||
TssLblExcuteTip.Text = $"Cmd:{taskParam.CmdName} Deal ReplyString Error:{ex.Message}"
|
||||
TssLblExcuteTip.ForeColor = Color.Blue
|
||||
Return
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Sub DealFunction(replyParam As TaskJsonParam)
|
||||
Select Case replyParam.CmdName
|
||||
Case TaskJsonParam.CmdNamesEnum.AddTasks
|
||||
DealAddTasks(replyParam)
|
||||
Case TaskJsonParam.CmdNamesEnum.DeleteTasks
|
||||
DealDeleteTasks(replyParam)
|
||||
Case TaskJsonParam.CmdNamesEnum.StartTasks, TaskJsonParam.CmdNamesEnum.RestartTasks
|
||||
DealStartTasks(replyParam)
|
||||
Case TaskJsonParam.CmdNamesEnum.StopTasks
|
||||
DealStopTasks(replyParam)
|
||||
Case TaskJsonParam.CmdNamesEnum.GetTasks
|
||||
DealGetTasks(replyParam)
|
||||
Case TaskJsonParam.CmdNamesEnum.SetTasks
|
||||
DealSetTasks(replyParam)
|
||||
Case TaskJsonParam.CmdNamesEnum.StartAllTasks, TaskJsonParam.CmdNamesEnum.RestartAllTasks
|
||||
DealStartAllTasks(replyParam)
|
||||
Case TaskJsonParam.CmdNamesEnum.StopAllTasks
|
||||
DealStopAllTasks(replyParam)
|
||||
Case TaskJsonParam.CmdNamesEnum.DeleteAllTasks
|
||||
DealDeleteAllTasks(replyParam)
|
||||
Case TaskJsonParam.CmdNamesEnum.GetAllTasks
|
||||
DealGetAllTasks(replyParam)
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub DealStartAllTasks(replyParam As TaskJsonParam)
|
||||
For i As Integer = 1 To Grid1.Rows - 1
|
||||
Grid1.Cell(i, ColNameEnum.Act).Text = "1"
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub DealStopAllTasks(replyParam As TaskJsonParam)
|
||||
For i As Integer = 1 To Grid1.Rows - 1
|
||||
Grid1.Cell(i, ColNameEnum.Act).Text = "0"
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub DealDeleteAllTasks(replyParam As TaskJsonParam)
|
||||
Grid1.Rows = 1
|
||||
TabTasks.TabPages.Clear()
|
||||
_tasks.Clear()
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub DealGetAllTasks(replyParam As TaskJsonParam)
|
||||
DealDeleteAllTasks(replyParam)
|
||||
|
||||
For Each taskInfo As Dictionary(Of String, String) In replyParam.TasksInfo
|
||||
Dim taskType As ServiceTask.ServiceTaskTypeEnum = CType([Enum].Parse(GetType(ServiceTask.ServiceTaskTypeEnum), taskInfo("Type")), ServiceTask.ServiceTaskTypeEnum)
|
||||
Dim taskForm As ITaskForm
|
||||
Select Case taskType
|
||||
Case ServiceTask.ServiceTaskTypeEnum.DbSync
|
||||
taskForm = New FrmSyncTasks()
|
||||
Case ServiceTask.ServiceTaskTypeEnum.ListenJsonFile
|
||||
taskForm = New FrmListenTasks()
|
||||
Case Else
|
||||
Throw New Exception($"Unknow TaskType:{taskType}")
|
||||
End Select
|
||||
|
||||
_tasks.Add(taskForm)
|
||||
AddTaskForm(taskForm)
|
||||
AddTaskGrid(taskInfo("Status"), taskInfo("Type"), taskInfo("Name"))
|
||||
|
||||
taskForm.SetParam(taskInfo)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
Private _addFrom As FrmAddTask
|
||||
Private Sub DealAddTasks(replyParam As TaskJsonParam)
|
||||
_tasks.Add(_addFrom.TaskForm)
|
||||
AddTaskForm(_addFrom.TaskForm)
|
||||
AddTaskGrid("0", _addFrom.TaskForm.GetParams("Type"), _addFrom.TaskForm.GetParams("Name"))
|
||||
End Sub
|
||||
|
||||
Private Sub DealDeleteTasks(replyParam As TaskJsonParam)
|
||||
_tasks.RemoveAt(TabTasks.SelectedIndex)
|
||||
RemoveTaskGrid(TabTasks.SelectedIndex)
|
||||
RemoveAtTaskForm(TabTasks.SelectedIndex)
|
||||
End Sub
|
||||
|
||||
Private Sub DealStartTasks(replyParam As TaskJsonParam)
|
||||
_tasks.SetStatus(TabTasks.SelectedIndex, ServiceTask.ServiceTaskStatusEnum.Start)
|
||||
StartTaskForm(TabTasks.SelectedIndex)
|
||||
End Sub
|
||||
|
||||
Private Sub DealStopTasks(replyParam As TaskJsonParam)
|
||||
_tasks.SetStatus(TabTasks.SelectedIndex, ServiceTask.ServiceTaskStatusEnum.Stop)
|
||||
StopTaskForm(TabTasks.SelectedIndex)
|
||||
End Sub
|
||||
|
||||
Private Sub DealGetTasks(replyParam As TaskJsonParam)
|
||||
For Each taskInfo As Dictionary(Of String, String) In replyParam.TasksInfo
|
||||
If taskInfo.ContainsKey("Name") Then
|
||||
If _tasks.GetParams(TabTasks.SelectedIndex).Item("Name") = taskInfo.Item("Name") Then
|
||||
ChangeTaskGrid(taskInfo("Status"), taskInfo("Type"), taskInfo("Name"))
|
||||
_tasks.SetParams(TabTasks.SelectedIndex, taskInfo)
|
||||
Else
|
||||
Console.WriteLine($"Unsearch Name:{taskInfo.Item("Name")}")
|
||||
End If
|
||||
Else
|
||||
Console.WriteLine($"UnExitst Name Filed!")
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub DealSetTasks(replyParam As TaskJsonParam)
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "添加通讯记录"
|
||||
Private _isShowLog As Boolean = True '是否显示通讯记录数据
|
||||
Private _isShowTip As Boolean = True '是否显示通讯记录提示
|
||||
Private _isClosing As Boolean = False '是否窗体处于关闭状态
|
||||
''' <summary>
|
||||
''' 添加记录并设置格式
|
||||
''' </summary>
|
||||
''' <param name="str">添加的记录内容</param>
|
||||
''' <param name="cor">需要设置的记录颜色</param>
|
||||
Private Sub AppendTextTip(ByVal str As String, ByVal cor As Color)
|
||||
Dim selStart As Integer
|
||||
Dim selLength As Integer
|
||||
selStart = RtxCommunicationLogs.TextLength
|
||||
RtxCommunicationLogs.AppendText(str)
|
||||
RtxCommunicationLogs.ScrollToCaret() '关键语句:将焦点滚动到文本内容后
|
||||
selLength = RtxCommunicationLogs.TextLength - selStart
|
||||
RtxCommunicationLogs.Select(selStart, selLength)
|
||||
RtxCommunicationLogs.SelectionColor = cor
|
||||
End Sub
|
||||
|
||||
Private Sub AppendTipText(recordString As String, col As Color)
|
||||
If _isClosing Then Return
|
||||
If _isShowTip = False Then Return
|
||||
If RtxCommunicationLogs.InvokeRequired Then
|
||||
RtxCommunicationLogs.Invoke(New Action(Sub()
|
||||
If RtxCommunicationLogs.Lines.Count >= 256 Then RtxCommunicationLogs.Clear()
|
||||
AppendTextTip($"{recordString}", col)
|
||||
RtxCommunicationLogs.ScrollToCaret()
|
||||
End Sub))
|
||||
Else
|
||||
If RtxCommunicationLogs.Lines.Count >= 256 Then RtxCommunicationLogs.Clear()
|
||||
AppendTextTip($"{recordString}", col)
|
||||
RtxCommunicationLogs.ScrollToCaret()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 点击是否收起通讯日志
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsmPackUpRecord_Click(sender As Object, e As EventArgs) Handles TsmPackUpRecord.Click
|
||||
SplMain.Panel2Collapsed = Not SplMain.Panel2Collapsed
|
||||
If Not SplMain.Panel2Collapsed Then
|
||||
TsmPackUpRecord.Text = $"隐藏通讯日志"
|
||||
Else
|
||||
TsmPackUpRecord.Text = $"显示通讯日志"
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 点击清空通讯日志
|
||||
''' </summary>
|
||||
''' <param name="sender"></param>
|
||||
''' <param name="e"></param>
|
||||
Private Sub TsmClearRecord_Click(sender As Object, e As EventArgs) Handles TsmClearRecord.Click
|
||||
RtxCommunicationLogs.Clear()
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
#Region "一键配置更新"
|
||||
|
||||
Private Sub TsmConfigUpdate_Click(sender As Object, e As EventArgs) Handles TsmConfigUpdate.Click
|
||||
Dim root As String = $"software\AUTS"
|
||||
If UtsRegistry.RootDirExists = False Then
|
||||
Try
|
||||
Microsoft.Win32.Registry.LocalMachine.CreateSubKey($"{root}\LocalDb")
|
||||
Microsoft.Win32.Registry.LocalMachine.CreateSubKey($"{root}\AUTS_DataService")
|
||||
Microsoft.Win32.Registry.LocalMachine.CreateSubKey($"{root}\AUTS_UpdateService")
|
||||
Catch ex As Exception
|
||||
Console.WriteLine($"创建注册表项失败! 失败原因:{ex.Message}")
|
||||
End Try
|
||||
End If
|
||||
|
||||
'配置更新
|
||||
|
||||
Dim result As DialogResult = FrmUpdateConfig.ShowDialog()
|
||||
InitSerName()
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
#Region "关闭窗体"
|
||||
|
||||
Private Sub FrmMain_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub 卸载服务ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 卸载服务ToolStripMenuItem.Click
|
||||
Dim filePath As String
|
||||
Using fileOpen As OpenFileDialog = New OpenFileDialog()
|
||||
fileOpen.Filter = $"服务执行程序(*.exe)|*.exe"
|
||||
If fileOpen.ShowDialog() <> DialogResult.OK Then
|
||||
Return
|
||||
End If
|
||||
filePath = fileOpen.FileName
|
||||
End Using
|
||||
|
||||
If WinService.UnInstallService(filePath, Nothing) Then
|
||||
MsgBox($"路径:{filePath},卸载服务成功")
|
||||
Else
|
||||
MsgBox($"路径:{filePath},卸载服务失败!")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub 输入路径卸载服务ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 输入路径卸载服务ToolStripMenuItem.Click
|
||||
Dim filePath As String = InputBox($"请输入服务执行文件路径", "卸载服务")
|
||||
If String.IsNullOrWhiteSpace(filePath) Then
|
||||
MsgBox($"路径:{filePath},是无效路径,请重新输入!")
|
||||
Return
|
||||
End If
|
||||
|
||||
If WinService.UnInstallService(filePath, Nothing) Then
|
||||
MsgBox($"路径:{filePath},卸载服务成功")
|
||||
Else
|
||||
MsgBox($"路径:{filePath},卸载服务失败!")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user