falchioner 发表于 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

basc 发表于 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

haijie1223 发表于 2013-5-7 22:26:07

总是有问题~~~

liangzz 发表于 2013-5-8 11:55:40

请参考一下这里http://www.autoitx.com/thread-37680-1-1.html

liangzz 发表于 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")

manlty 发表于 2013-5-10 23:48:51

我直接用InetGetSize 函数取一个可下载文件的大小来判断,参数2用1,强制从远程站点读取

xms77 发表于 2013-5-12 21:54:34

用IPCONFIG应该也是可以的吧

大叔 发表于 2013-5-15 22:45:15

用PING 命令是个不错的办法。 AU3的PING 一样可以设置超时时间不用调DOS的吧?

mbdnmt 发表于 2013-5-15 23:18:45

把这个脚本加入开机启动,记得刚开始要加一段时间的延时,比如2分钟。因为刚开始的时候系统刚起来运行未必是正常的。然后在轮训多次看是否连接到网络,如果没有连接到就进行PPPoE拨号

guti_8014 发表于 2013-5-16 12:47:01

参考下:
http://www.autoitx.com/forum.php?mod=viewthread&tid=26208&highlight=%CD%F8%B9%D8
可能会对你有所帮助

tts780679 发表于 2013-5-18 13:36:31

(⊙o⊙),学习,我也老是有问题
页: [1]
查看完整版本: 电脑开机后,判断是否连接到互联网?