Board logo

标题: 网络连接监测的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

  1. Dim wmi
  2. Set wmi=GetObject("winmgmts://./root/cimv2")
  3. For Each i in wmi.Execquery("Select * from Win32_PingStatus Where Address='www.sohu.com'")
  4.     If i.StatusCode = 0 Then
  5.     WScript.Echo "正常"
  6.     Else
  7.    WScript.Echo "异常"
  8.     End If
  9. Next
复制代码

作者: youxi01    时间: 2008-10-31 22:33

呵呵,楼上的弟兄是不是在ExecQuery里还要加一个 within 呢?
因为LZ似乎要求定时检测哦
作者: everest79    时间: 2008-10-31 23:33

  1. Dim Counter
  2. Counter=0
  3. Do While Abs(Counter) < 50000
  4. WScript.Sleep 5000
  5. Counter=Counter+Ping("www.sohu.com")
  6. Loop
  7. Function Ping(s)
  8. Dim wmi
  9. Set wmi=GetObject("winmgmts://./root/cimv2")
  10. For Each i in wmi.ExecQuery("Select * From Win32_PingStatus Where Address='" & s & "'")
  11.     If i.StatusCode=0 Then
  12.        x=1
  13.     Else
  14.        x=-1
  15.        Msgbox "网络连接被断开!"
  16.     End If
  17. Next
  18. Ping=x
  19. End Function
复制代码

作者: everest79    时间: 2008-10-31 23:34

嘿嘿,我常把while与until搞混,所以能少用就不用
作者: wgmlzj    时间: 2008-11-1 12:54

谢谢楼上各大虾指教,程序可以运行但对网络连接信息没反应.

是不是不可能?




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2