[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

以上"有风险进程"就是显示在任务栏里的.

  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
复制代码

TOP

呵呵,楼上的弟兄是不是在ExecQuery里还要加一个 within 呢?
因为LZ似乎要求定时检测哦

TOP

  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
复制代码

TOP

嘿嘿,我常把while与until搞混,所以能少用就不用

TOP

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

是不是不可能?

TOP

返回列表