找回密码
 加入
搜索
查看: 4624|回复: 4

[系统综合] 问个关于本地连接状态的问题[已解决]

[复制链接]
发表于 2011-4-2 15:38:53 | 显示全部楼层 |阅读模式
本帖最后由 飘云 于 2011-4-2 16:58 编辑

论坛里搜搜倒是有一些,但都不是我要的



我想要的是获取图中红框中的内容,是物理网线的状态判断
本来以为用sensapi.dll中的IsNetworkAlive函数就可以,但是使用后发现,IsNetworkAlive函数只能识别网络的联通与否,如果网络未连接,就算本地连接显示为已连接也返回0(因为校园内使用的是闪讯上网,本地连接的状态是混乱的,有时显示未连接,有时就显示是已连接,但是网线拔掉肯定显示为网络电缆被拔出)
后来又想用Iphlpapi.dll中的GetIfEntry函数,可以不知道为啥,试验的结果是dwAdminStatus的返回值为0。。。。

请各位大大帮忙了
-----------------------------------------------------

自己搞定了,还是用的GetIfEntry函数,开始是自己相关参数没设置好

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +10 收起 理由
pusofalse + 10 感谢主动修改帖子分类为[已解决],请继续发 ...

查看全部评分

发表于 2011-4-2 18:30:01 | 显示全部楼层
Global Const $NETWORK_ALIVE_LAN = 0x1
Global Const $NETWORK_ALIVE_WAN = 0x2
 
$x =DLLCall("sensapi.dll","int","IsNetworkAlive","str",$NETWORK_ALIVE_LAN)
msgbox (4096,"测试",$x[0])
; 1 为通,0 为断
 楼主| 发表于 2011-4-2 21:55:06 | 显示全部楼层
本帖最后由 飘云 于 2011-4-2 21:56 编辑


$a = DllStructCreate("wchar wszName[256];dword dwIndex;dword dwType;dword dwMtu;dword dwSpeed;dword dwPhysAddrLen;char bPhysAddr[8];dword dwAdminStatus;dword dwOperStatus;dword dwLastChange;dword dwInOctets;dword dwInUcastPkts;dword dwInNUcastPkts;dword dwInDiscards;dword dwInErrors;dword dwInUnknownProtos;dword dwOutOctets;dword dwOutUcastPkts;dword dwOutNUcastPkts;dword dwOutDiscards;dword dwOutErrors;dword dwOutQLen;dword dwDescrLen;char bDescr[256]")
DllStructSetData($a,2,2);这里最后一个值是网卡序号,不知道为啥,我的有线网卡序号是2
DLLCall("iphlpapi.dll","dword","GetIfEntry","ptr",DllStructGetPtr($a))
msgbox (0,"测试",DllStructGetData($a,"bDescr"));通过bDescr来判断是否是目标网卡
;使用元素名dwOperStatus ,5 为通,0 为断
发表于 2011-4-3 09:02:21 | 显示全部楼层
ping 一下不行吗?
发表于 2011-4-23 18:37:40 | 显示全部楼层
不知楼主需要的那一种方式
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-30 23:33 , Processed in 0.089162 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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