[VB.net]网络状态监视器[2012.02.28]

[VB.net]网络状态监视器[2012.02.28],第1张

概述程序可以监控网络连接状态,可以设定网络断开的话就自动关机或运行程序。 新浪博客:http://blog.sina.com.cn/s/blog_647ee5f70100wicy.html 下载地址:http://115.com/file/anfnk0zh 更新 :   1.增加功能   2.细节调整   3.修复Bug   4.错误处理 界面图及控件命名如下: 此外,程序还包含两个Timer控件,T

程序可以监控网络连接状态,可以设定网络断开的话就自动关机或运行程序。

新浪博客:http://blog.sina.com.cn/s/blog_647ee5f70100wicy.html

下载地址:http://115.com/file/anfnk0zh

更新
1.增加功能 2.细节调整 3.修复BUG 4.错误处理



界面图及控件命名如下:


此外,程序还包含两个Timer控件,Timer1用于定时执行命令,Timer2用于获取当前时间并显示;一个NotifyIcon控件用于显示托盘图标;一个ContextMenuStrip控件用于托盘图标的右键菜单;一个OpenfileDialog控件用于打开文件。


源代码:

Public Class Monitor1    Dim a As Boolean    Private Sub Form1_Load(sender As System.Object,e As System.EventArgs) Handles MyBase.Load        Label3.Text = "当前时间:" & My.Computer.Clock.LocalTime.TolongTimeString   '获取当前时间并显示        Timer1.Interval = My.Settings.Interval1    '从设置中获取保存的检测间隔        ComboBox1.Selectedindex = 1               '令检测间隔选择框默认显示第二项        If My.Settings.LWS = 1 Then    '初始化【开机启动】复选框状态            CheckBox3.Checked = True        Else            CheckBox3.Checked = False        End If        If My.Settings.SWR = 1 Then   '获取【运行即监控】设置            Timer1.Enabled = True            CheckBox4.Checked = True            button1.Text = "关闭监视"            Label2.Text = "监视功能状态:已开启"            Label2.Forecolor = color.DarkGreen        Else            Timer1.Enabled = False            CheckBox4.Checked = False            button1.Text = "开启监视"            Label2.Text = "监视功能状态:已关闭"            Label2.Forecolor = color.DarkRed        End If        a = My.Computer.Network.Ping("8.8.8.8")     '通过Ping 8.8.8.8来判断网络是否连通        If a = True Then            Label1.Text = "网络状态:网络已连接"       '如果网络已连接,则显示            light1.Fillcolor = color.Green      '同时将“指示灯”颜色更改为绿色            light1.FillGradIEntcolor = color.lightGreen            NotifyIcon1.Text = "网络监视器" & Chr(13) & "网络状态:网络已连接"        Else            Label1.Text = "网络状态:网络未连接"            NotifyIcon1.Text = "网络监视器" & Chr(13) & "网络状态:网络未连接"        End If        NotifyIcon1.ContextMenuStrip = ContextMenuStrip1     '为托盘图标添加右键菜单        If My.Settings.filePath1 = "" Then            TextBox1.Text = "请输入要运行的程序路径"        Else            TextBox1.Text = My.Settings.filePath1        End If    End Sub    Private Sub Timer1_Tick(sender As System.Object,_                            e As System.EventArgs) Handles Timer1.Tick      'Timer1控件的Tick间隔为20000毫秒        Dim result2 As String        a = My.Computer.Network.Ping("8.8.8.8")        If a = True Then            Label1.Text = "网络状态:网络已连接"            light1.Fillcolor = color.Green            light1.FillGradIEntcolor = color.lightGreen            NotifyIcon1.Text = "网络监视器" & Chr(13) & "网络状态:网络已连接"     '设置托盘图标的显示内容        Else            Label1.Text = "网络状态:网络未连接"      '如果网络未连接,则显示            light1.Fillcolor = color.Red        '同时更改“指示灯”颜色为红色            light1.FillGradIEntcolor = color.Pink            NotifyIcon1.Text = "网络监视器" & Chr(13) & "网络状态:网络未连接"            If CheckBox1.Checked = True Then    '如果勾选【网络断开自动关机】                Dim systemD As String                systemD = System.Environment.SystemDirectory                Process.Start(systemD & "\shutdown.exe","-s -t 60")    '则执行关机命令,延迟60秒                Timer1.Enabled = False      '令Timer1不可用,以阻止多次执行同一动作                result2 = MsgBox("网络已断开,计算机将在60秒内关闭",MsgBoxStyle.OkCancel)  'd出对话框提示计算机即将关闭                Me.ShowInTaskbar = True                If result2 = vbCancel Then                    Process.Start(systemD & "\shutdown.exe","-a")   '若用户在关机前点击对话框的“取消”按钮,则取消自动关机                    CheckBox1.Checked = False                    Timer1.Enabled = True                End If            Else                If CheckBox2.Checked = True And TextBox1.Text <> "" Then    '如果勾选【网络断开运行程序】                    Try                        Process.Start(TextBox1.Text)    '则运行程序                        CheckBox2.Checked = False                    Catch ex As Exception                        MsgBox("发生错误,可能是文件不存在!",MsgBoxStyle.Exclamation)                    End Try                End If            End If        End If    End Sub    Private Sub CheckBox1_CheckedChanged(sender As System.Object,e As System.EventArgs) Handles CheckBox1.CheckedChanged        If CheckBox1.Checked = True Then            CheckBox2.Enabled = False        Else            CheckBox2.Enabled = True        End If    End Sub    Private Sub CheckBox2_CheckedChanged(sender As System.Object,e As System.EventArgs) Handles CheckBox2.CheckedChanged        If CheckBox2.Checked = True Then   '如果选择了第二个单选按钮            CheckBox1.Enabled = False     '禁用另一功能            TextBox1.Enabled = True      '启用文本框            If TextBox1.Text = "请输入要运行的程序路径" Then                TextBox1.Text = ""           '清空文本框内容            End If            button2.Enabled = True       '启用【浏览】按钮            button3.Enabled = True        '启用【保存路径】按钮        Else            CheckBox1.Enabled = True            TextBox1.Enabled = False            If TextBox1.Text = "" Then                TextBox1.Text = "请输入要运行的程序路径"            End If            button2.Enabled = False            button3.Enabled = False        End If    End Sub    Private Sub CheckBox3_CheckedChanged(sender As System.Object,e As System.EventArgs) Handles CheckBox3.CheckedChanged        If CheckBox3.Checked = True Then            Try                My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\windows\CurrentVersion\Run",_                                              "NetworkMonitor",Application.ExecutablePath)    '写入注册表            Catch ex As Exception                MsgBox("发生未知错误,错误代码:" & Err.Number)    '其实几乎不可能发生错误            End Try            MsgBox("设置完毕,已启用开机自动运行",MsgBoxStyle.information)   '提示            My.Settings.LWS = 1    '保存设置        Else            Try                My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\windows\CurrentVersion\Run","")            Catch ex As Exception                MsgBox("发生错误,错误代码:" & Err.Number,MsgBoxStyle.Exclamation)            End Try            MsgBox("设置完毕,已禁止开机自动运行",MsgBoxStyle.information)            My.Settings.LWS = 0        End If    End Sub    Private Sub CheckBox4_CheckedChanged(sender As System.Object,e As System.EventArgs) Handles CheckBox4.CheckedChanged        If CheckBox4.Checked = True Then            My.Settings.SWR = 1    '保存设置        Else            My.Settings.SWR = 0        End If    End Sub    Private Sub button1_Click(sender As System.Object,e As System.EventArgs) Handles button1.Click        If button1.Text = "关闭监视" Then    '点击【关闭监视】按钮            Timer1.Enabled = False        '则禁用计时器,即停止监视功能            Label2.Text = "监视功能状态:已关闭"     '显示状态            Label2.Forecolor = color.DarkRed          '修改字体颜色            button1.Text = "开启监视"               '修改按钮文本        Else            Timer1.Enabled = True            Label2.Text = "监视功能状态:已开启"            Label2.Forecolor = color.DarkGreen            button1.Text = "关闭监视"        End If    End Sub    Private Sub button2_Click(sender As System.Object,e As System.EventArgs) Handles button2.Click        Try            OpenfileDialog1.ShowDialog()            TextBox1.Text = OpenfileDialog1.filename        Catch ex As Exception            MsgBox("发生错误",MsgBoxStyle.Exclamation)        End Try    End Sub    Private Sub button3_Click(sender As System.Object,e As System.EventArgs) Handles button3.Click        If TextBox1.Text <> "请请输入要运行的程序路径" And TextBox1.Text <> "" Then            My.Settings.filePath1 = TextBox1.Text        Else            MsgBox("请输入正确的路径",MsgBoxStyle.Exclamation)        End If    End Sub    Private Sub button4_Click(sender As System.Object,e As System.EventArgs) Handles button4.Click        If Me.WIDth = 425 Then            Me.WIDth = 700    '展开【设置】部分            GroupBox2.Enabled = True   '启用【设置】部分            button4.Text = "设置 <<"        Else            Me.WIDth = 425            GroupBox2.Enabled = False            button4.Text = "设置 >>"        End If    End Sub    Private Sub button5_Click(sender As System.Object,e As System.EventArgs) Handles button5.Click        Dim interval2 As Integer        If button5.Text = "设置检测间隔" Then            button5.Text = "保存"            ComboBox1.Enabled = True        Else            Select Case ComboBox1.Text                Case "10秒"                    interval2 = 10000                Case "20秒(默认)"                    interval2 = 20000                Case "30秒"                    interval2 = 30000                Case "1分钟"                    interval2 = 60000                Case "2分钟"                    interval2 = 120000                Case "5分钟"                    interval2 = 300000                Case "10分钟"                    interval2 = 600000                Case "20分钟"                    interval2 = 1200000                Case "30分钟"                    interval2 = 1800000            End Select            My.Settings.Interval1 = interval2            button5.Text = "设置检测间隔"            ComboBox1.Enabled = False        End If    End Sub    Private Sub NotifyIcon1_MouseDoubleClick(sender As System.Object,e As System.windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick        Me.windowstate = Formwindowstate.normal    '双击托盘图标,显示窗口        If Me.windowstate = Formwindowstate.Minimized Then            Me.ShowInTaskbar = True        End If    End Sub    Private Sub monitor1_Resize(sender As Object,e As System.EventArgs) Handles Me.Resize        If Me.windowstate = Formwindowstate.Minimized Then            Me.ShowInTaskbar = False   '当程序最小化,则不在任务栏显示图标        End If    End Sub    Private Sub ShownHIDe1_Click(sender As System.Object,e As System.EventArgs) Handles ShownHIDe1.Click        If ShownHIDe1.Text = "隐藏窗口" Then            Me.windowstate = Formwindowstate.Minimized            ShownHIDe1.Text = "显示窗口"        Else            Me.windowstate = Formwindowstate.normal            ShownHIDe1.Text = "隐藏窗口"        End If    End Sub    Private Sub Exit1_Click(sender As System.Object,e As System.EventArgs) Handles Exit1.Click        End    End Sub    Private Sub Timer2_Tick(sender As System.Object,e As System.EventArgs) Handles Timer2.Tick        Label3.Text = "当前时间:" & My.Computer.Clock.LocalTime.TolongTimeString    End Sub    Private Sub linkLabel1_linkClicked(sender As System.Object,e As System.windows.Forms.linkLabellinkClickedEventArgs) Handles linkLabel1.linkClicked        Try            System.Diagnostics.Process.Start("mailto:[email protected]")        Catch ex As Exception            MsgBox("没有关联的邮件程序",MsgBoxStyle.Exclamation)        End Try    End Sub    Private Sub OpenfileDialog1_fileOk(sender As System.Object,e As System.ComponentModel.CancelEventArgs) Handles OpenfileDialog1.fileOk    End SubEnd Class
总结

以上是内存溢出为你收集整理的[VB.net]网络状态监视器[2012.02.28]全部内容,希望文章能够帮你解决[VB.net]网络状态监视器[2012.02.28]所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1287695.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存