本帖最后由 lin6051 于 2016-4-11 22:14 编辑
我的一个程序ping判断192.168.1.1通执行A.exe , 192.168.2.1通就执行B.exe
在xp下没什么问题
但在win7下
比如:
我电脑设192.168.1.10,网关空白, 接的设备是网关是192.168.1.1
ping192.168.2.1 当然不通,可 程序判断是 通的是怎么解决
代码如下:if ping('192.168.2.1',200) then
msgbox(0,'','111')
else
msgbox(0,'','222')
endif
win7下 手工ping 看了下 显示是:
PING: 传输失败.General failure
但xp下显示是 time out
暂时用回显判断字符串解决,不过用起来cpu占用挺高的MsgBox(0,'', _ping('192.168.1.1',100))
Func _ping($ipurl,$delay=100) ;返回0不通 >0通
Sleep(50)
Local $line,$l=Run(@ComSpec & " /c " & 'ping -n 1 -w '&$delay&' '&$ipurl,'',@SW_HIDE,2)
While 1
$line &= StdoutRead($l)
If @error Then ExitLoop
Sleep(50)
WEnd
Return StringInStr($line,'TTL=')
EndFunc
|