C#用wininet能判断Win7系统的网络连接,却不能判断xp系统的网络连接。

兵工厂三剑客 2015-03-11 11:06:28
相关代码如下:
[DllImport("wininet.dll", EntryPoint = "InternetGetConnectedState")]
public extern static bool InternetGetConnectedState(out int conState, int reder);
//参数说明 constate 连接说明 ,reder保留值
public static bool IsConnectedToInternet()
{
int Desc=0;
return InternetGetConnectedState(out Desc, 0);
}
然后我在需要判断网络连接的地方是这么写的:
while (Flagnet)
{
if (IsConnectedToInternet())//如果是连上的
{
Flagnet = false;
this.BeginInvoke(new invokeDelegate0(UpdataReceiveTextBox), "\r\n 网络连接正常,即将开始测试\r\n");
}
else//如果网口1网线未连上
{
Thread.Sleep(1500);
this.BeginInvoke(new invokeDelegate0(UpdataReceiveTextBox), "\r\n网络未连接,请将网口1接上网线\r\n");
}
}
我在自己的win7上,不插网线的情况下能提示“网络未连接,请将网口1接上网线”,插上网线测试能提示网络连接正常。在xp系统上不插网线的情况下,却得不到“网络未连接,请将网口1接上网线”提示。在xp系统上,连接网线的情况下进行网络测试却又提示网络正常。请问是什么原因呢,是不是wininet的原因。我用的VS2012,win7系统。求指点啊。
...全文
104 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
兵工厂三剑客 2015-03-13
  • 打赏
  • 举报
回复
引用 1 楼 Z65443344 的回复:
没用过 InternetGetConnectedState(out Desc, 0); Desc是干嘛的,你确定不需要把这个参数out出来判断一下吗
Desc是判断采用的哪种连网方式。我解决问题了。怎么没人啊。原来是xp系统上有2个本地连接,禁用一个就OK了。
於黾 2015-03-11
  • 打赏
  • 举报
回复
没用过 InternetGetConnectedState(out Desc, 0); Desc是干嘛的,你确定不需要把这个参数out出来判断一下吗

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧