原文:http://www.cnblogs.com/yincheng01/archive/2010/05/30/2213234.html

在Windows7操作系统下,支持的网络类型越来越复杂,微软提供了WindowsAPICodePack来进行简化底层开发,

我们大家来亲自实践一下关于网络状态开发,基于WindowsAPICodePack

启动VS2010

引入dll文件,添加如下代码即可

private void LoadNetworkConnections()
{
try
{
NetworkCollection networks = NetworkListManager.GetNetworks(NetworkConnectivityLevels.All);
foreach (Network n in networks)
{
// 创建 tab
TabItem tabItem = new TabItem();
tabItem.Header = string.Format("Network {0} ({1})", tabControl1.Items.Count, n.Name);
tabControl1.Items.Add(tabItem); //
StackPanel stackPanel2 = new StackPanel();
stackPanel2.Orientation = Orientation.Vertical; // 列举所有信息
AddProperty("网络名称: ", n.Name, stackPanel2);
AddProperty("网络类型: ", n.Description, stackPanel2);
AddProperty("域类型: ", n.DomainType.ToString(), stackPanel2);
AddProperty("是否连接: ", n.IsConnected.ToString(), stackPanel2);
AddProperty("是否上网: ", n.IsConnectedToInternet.ToString(), stackPanel2);
AddProperty("网络 ID: ", n.NetworkId.ToString(), stackPanel2);
AddProperty("类别: ", n.Category.ToString(), stackPanel2);
AddProperty("创建时间: ", n.CreatedTime.ToString(), stackPanel2);
AddProperty("连接时间: ", n.ConnectedTime.ToString(), stackPanel2);
AddProperty("连接: ", n.Connectivity.ToString(), stackPanel2); //
StringBuilder s = new StringBuilder();
s.AppendLine("网络连接:");
NetworkConnectionCollection connections = n.Connections;
string hh = System.Environment.NewLine;
foreach (NetworkConnection nc in connections)
{
s.AppendFormat(hh + "连接 ID: {0}" + hh + "类型: {1}" + hh + "是否连接: {2}" + hh + "是否连接因特网: {3}" + hh,
nc.ConnectionId, nc.DomainType, nc.IsConnected, nc.IsConnectedToInternet);
s.AppendFormat(hh + "适配器 ID: {0}" + hh + "连接: {1}" + hh,
nc.AdapterId, nc.Connectivity);
}
s.AppendLine(); Label label = new Label();
label.Content = s.ToString(); stackPanel2.Children.Add(label);
tabItem.Content = stackPanel2;
}
}
catch (Exception ex)
{
txtReadWrite.WriteLog("检测网络异常!" + ex.GetType().FullName + ex.Message + ex.StackTrace);
(new Win_Popup("消息", "删除数据时出错!" + ex.Message, MessageBoxButton.OK)).ShowDialog();
}
} private void AddProperty(string propertyName, string propertyValue, StackPanel parent)
{
StackPanel panel = new StackPanel();
panel.Orientation = Orientation.Horizontal; Label propertyNameLabel = new Label();
propertyNameLabel.Content = propertyName;
panel.Children.Add(propertyNameLabel); Label propertyValueLabel = new Label();
propertyValueLabel.Content = propertyValue;
panel.Children.Add(propertyValueLabel); parent.Children.Add(panel);
}

窗口代码如下:

 <Grid>
<TabControl Height="Auto" HorizontalAlignment="Stretch" Margin="10,10,10,10" Name="tabControl1" VerticalAlignment="Stretch" Width="Auto">
</TabControl>
</Grid>

看下效果图吧:

通过这个接口,可以获取各个网络的信息。dll下载点这

Win7网络检测 WindowsAPICodePack的更多相关文章

  1. iOS开发——网络篇——NSURLSession,下载、上传代理方法,利用NSURLSession断点下载,AFN基本使用,网络检测,NSURLConnection补充

    一.NSURLConnection补充 前面提到的NSURLConnection有些知识点需要补充 NSURLConnectionDataDelegate的代理方法有一下几个 - (void)conn ...

  2. WinForm多线程实现HTTP网络检测工具

    一.背景描述与课程介绍 明人不说暗话,跟着阿笨一起玩WinForm.本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高 ...

  3. ios - 高效,准确的网络检测

    //网络检测 // 1.创建网络监听者管理者对象 AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager share ...

  4. Hyper-V虚拟机win7网络红叉,无法上网解决方法

    之前一直都是玩Vmware虚拟机,后来win8之后的系统有Hyper-V虚拟机就开始接触了. Windows 中内置的Hyper-V管理器可以说是给很多人带来了惊喜!至少运行的流畅程度要比Vmware ...

  5. 解除win7网络限速.

    在电脑刚买或者系统重装了的时候,win7系统会默认限制20%的网络速度,限制了我们的上网速度,我们可以解决这个限制,让上网变得更快 下面是操作步骤 1.开始>运行 2.输入以下命令,然后确定 g ...

  6. iOS网络检测

    使用之前请从Apple网站下载示例:点此下载 Reachability 中定义了3种网络状态: typedef enum : NSInteger { NotReachable = ,//无网络 Rea ...

  7. Win7网络修复,winsock/tcpip

    1.win7自带网络诊断提示没有安装一个或多个协议,ip地址为169.254.x.x,dns地址为空 2.修复winsock时,提示系统找不到指定的文件. 解决办法: 1. netsh int ip ...

  8. Linux网络检测手段汇总

    1.iftop iftop可测量通过每一个套接字连接传输的数据:它采用的工作方式有别于nload.iftop使用pcap库来捕获进出网络适配器的数据包,然后汇总数据包大小和数量,搞清楚总的带宽使用情况 ...

  9. (020)[虚拟系统]Win7网络连接红叉(无解决)

    该虚拟机在重装主系统前是可以连接网络的,主系统重新安装以后,导入新安装的VM以后,网络图标显示红叉. 查看设备管理,显示没有安装以太网驱动. 重新安装 Vmware Tools,未果.VMware官网 ...

随机推荐

  1. word2pdf

    在网上现在能查到的,并且能通过php调用相关接口,将word转换成pdf文件的有openoffice,访问网址为http://www.openoffice.org/download/index.htm ...

  2. Oracle 10g RAC启动与关闭命令

    一. 检查共享设备 一般情况下, 存放OCR 和 Voting Disk 的OCFS2 或者raw 都是自动启动的. 如果他们没有启动,RAC 肯定是启动不了的. 1.1 如果使用ocfs2的,检查o ...

  3. Django 403错误:CSRF verification failed. Request aborted

    网上有解决办法,我自己的组合是: 一,FORM加标识 <form action="" method="post"> {% csrf_token %} ...

  4. POJ 2778 DNA Sequence (AC自动机,矩阵乘法)

    题意:给定n个不能出现的模式串,给定一个长度m,要求长度为m的合法串有多少种. 思路:用AC自动机,利用AC自动机上的节点做矩阵乘法. #include<iostream> #includ ...

  5. 《Programming WPF》翻译 第7章 1.图形基础

    原文:<Programming WPF>翻译 第7章 1.图形基础 WPF使得在你的应用程序中使用图形很容易,以及更容易开发你的显卡的能力.这有很多图形构架的方面来达到这个目标.其中最重要 ...

  6. Qt编程之转换成8,16bit的灰度图

    代码大致是下面这样的.是8bit的灰度图,不是16bit. QString img_path = "C:\\Users\\Yajun Dou\\Desktop\\test.bmp" ...

  7. Tk::Table

    <pre name="code" class="python"># DESCRIPTION # Tk::Table is an all-perl w ...

  8. UML建模工具-火龙果软件

     官网地址:http://code.uml.com.cn/index.asp     Bridge桥梁模式    (待逆向) 桥梁模式,通过增加一个类,将抽象部分与它的实现部分分离,使它们都可以独立 ...

  9. 关于sem_unlink什么时候删除信号量

    sem_unlink在man手册里有这么一段话: sem_unlink() removes the named semaphore referred to by name. The semaphore ...

  10. BZOJ 2733 HNOI 2012 永无乡 平衡树启示式合并

    题目大意:有一些岛屿,一開始由一些无向边连接. 后来也有不断的无向边增加,每个岛屿有个一独一无二的重要度,问随意时刻的与一个岛屿联通的全部岛中重要度第k大的岛的编号是什么. 思路:首先连通性一定要用并 ...