找回密码
 加入
搜索
查看: 4790|回复: 10

[网络通信] 电脑开机后,判断是否连接到互联网?

  [复制链接]
发表于 2013-5-7 19:14:14 | 显示全部楼层 |阅读模式
请问,
开机后自动判断是否连接到互联网,若没有,则执行pppoe拨号连接。若连接上执行一个函数。
我的程序执行总是有问题,请各位高手,帮忙解决下?
有没有更好的判断互联网连接的函数?
我的执行环境是winxp


While 1
$var = Ping("www.sohu.com",250)
If $var Then
    Msgbox(0,"状态-成功","收发时间间隔:" & $var & "毫秒")
        myprogram()
        Exit
Else
Run(@ComSpec)
Send(" rasdial XXXXX {ENTER}")  
    Msgbox(0,"状态-失败","错误代码:" & @error)
EndIf
WEnd
发表于 2013-5-7 19:21:17 | 显示全部楼层
Local $var = Ping("www.AutoItScript.com", 250)
If $var Then
    MsgBox(0,"状态-成功","收发时间间隔:" & $var & "10")
Else
    MsgBox(0,"状态-失败","错误代码:" & @error)
run(d:\123.exe)
EndIf
发表于 2013-5-7 22:26:07 | 显示全部楼层
总是有问题~~~
发表于 2013-5-8 11:55:40 | 显示全部楼层
发表于 2013-5-8 11:55:42 | 显示全部楼层
本帖最后由 liangzz 于 2013-5-8 11:56 编辑

请参考一下这里http://www.autoitx.com/thread-37680-1-1.html,在论坛上泡了许久,发现大家对于判断网络是否畅通的方法一般都是用ping函数,这个函数对于已联通网络的电脑来说速度还可以接受,但对于在更为复杂的路由器局域网中(A.路由器未开B.路由器已开单网络未通)则会出现多达三四十秒设置一分多钟的停顿,让人无法忍受。较为快速的解决方法是使用使用_RunDOS函数调用dos命令ping.exe,因为dos命令ping.exe可以定义超时时间,免除autoit里ping函数因网络问题出现超长时间ping网络的bug。此外还可以在ping.exe后加上管道命令“||”和exit命令生成对应退出码(不明白什么是退出码的话请复习一下DOS命令,绝对多数经典的dos命令执行后都会产生一个退出码让系统或其他程序知道其执行的结果)以便让autoit后续语句更好地判断网络问题。
_RunDOS("ping -n 1 -w 2000 192.168.1.1||exit 303")
发表于 2013-5-10 23:48:51 | 显示全部楼层
我直接用InetGetSize 函数取一个可下载文件的大小来判断,参数2用1,强制从远程站点读取
发表于 2013-5-12 21:54:34 | 显示全部楼层
用IPCONFIG应该也是可以的吧
发表于 2013-5-15 22:45:15 | 显示全部楼层
用PING 命令是个不错的办法。 AU3的PING 一样可以设置超时时间不用调DOS的吧?
发表于 2013-5-15 23:18:45 | 显示全部楼层
把这个脚本加入开机启动,记得刚开始要加一段时间的延时,比如2分钟。因为刚开始的时候系统刚起来运行未必是正常的。然后在轮训多次看是否连接到网络,如果没有连接到就进行PPPoE拨号
发表于 2013-5-16 12:47:01 | 显示全部楼层
参考下:
http://www.autoitx.com/forum.php ... hlight=%CD%F8%B9%D8
可能会对你有所帮助
发表于 2013-5-18 13:36:31 | 显示全部楼层
(⊙o⊙),学习,我也老是有问题
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-3 12:09 , Processed in 0.107132 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表