标题: 网络连接监测的VBS怎样写? [打印本页]
作者: wgmlzj 时间: 2008-10-31 03:21 标题: 网络连接监测的VBS怎样写?
以下是用BAT写的网络连接监测程序:
@echo off
setlocal enabledelayedexpansion
title lxg3428网络连接监测器--------------------lxg3428网络连接监测器
mode con cols=70 lines=3 &color 2f
cls
echo 开始请稍等。。。。。。
:loop
echo %time%
ping 1 -n 1 -w 10000 2>nul 1>nul
echo %time%
netstat -an >a.txt
findstr "ESTABLISHED" a.txt >b.txt
type b.txt
goto loop
现请教:当连接状态是ESTABLISHED时在开始任务栏(就是屏幕最下那一栏)能显示出提示(比如显示"有连接")怎样写?
在这论坛截一段代码能显示他原来的东西,但不知道怎样用在我以上的程序里有同样的效果:
Sub SINK_OnObjectReady(objLatestEvent, objAsyncContext)
For Each strTargetProc In arrTargetProcs
If LCase(objLatestEvent.TargetInstance.Name) = LCase(strTargetProc) Then
ProcessName=objLatestEvent.TargetInstance.Name
objShell.Popup Now & " 发现进程: " & ProcessName, 60, "有风险进程"
End If
Next
End Sub
以上"有风险进程"就是显示在任务栏里的.
作者: everest79 时间: 2008-10-31 22:30
- Dim wmi
- Set wmi=GetObject("winmgmts://./root/cimv2")
- For Each i in wmi.Execquery("Select * from Win32_PingStatus Where Address='www.sohu.com'")
- If i.StatusCode = 0 Then
- WScript.Echo "正常"
- Else
- WScript.Echo "异常"
- End If
- Next
复制代码
作者: youxi01 时间: 2008-10-31 22:33
呵呵,楼上的弟兄是不是在ExecQuery里还要加一个 within 呢?
因为LZ似乎要求定时检测哦
作者: everest79 时间: 2008-10-31 23:33
- Dim Counter
- Counter=0
- Do While Abs(Counter) < 50000
- WScript.Sleep 5000
- Counter=Counter+Ping("www.sohu.com")
- Loop
-
- Function Ping(s)
- Dim wmi
- Set wmi=GetObject("winmgmts://./root/cimv2")
- For Each i in wmi.ExecQuery("Select * From Win32_PingStatus Where Address='" & s & "'")
- If i.StatusCode=0 Then
- x=1
- Else
- x=-1
- Msgbox "网络连接被断开!"
- End If
- Next
- Ping=x
- End Function
复制代码
作者: everest79 时间: 2008-10-31 23:34
嘿嘿,我常把while与until搞混,所以能少用就不用
作者: wgmlzj 时间: 2008-11-1 12:54
谢谢楼上各大虾指教,程序可以运行但对网络连接信息没反应.
是不是不可能?
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |