ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何在.NET CF C#3.5中连接到wifi网络

2019-07-05 07:04:22  阅读:238  来源: 互联网

标签:c wifi compact-framework


这是我想在.NET CF 3.5(C#)应用程序中做的事情

1)检查无线适配器是否正在工作/活动状态
2)添加具有可用SSID,密码和其他详细信息的首选网络
3)建立与首选网络的连接

我尝试过使用OpenNetCF.Net.NetworkInformation类,但运气不错!我无法检测无线网络.所有网络包括wifi和蓝牙都显示为以太网.

foreach (var networkInterface in NetworkInterface.GetAllNetworkInterfaces())
{
    if (networkInterface is WirelessNetworkInterface)
        MessageBox.Show("Found a WirelessNetworkInterface");
    else if (networkInterface is WirelessZeroConfigNetworkInterface)
        MessageBox.Show("Found a WirelessZeroConfigNetworkInterface");
    else
        MessageBox.Show("Ethernet??");
}

我面临的问题在这里讨论http://community.opennetcf.com/forums/t/11099.aspx.但是没有解决方案.

是否有任何允许我与Wifi交互的.NET CF API?

解决方法:

你是误会.顾名思义,它列出了所有网络接口.蓝牙和Wifi(甚至RNDIS USB连接)都是网络接口,因此将被枚举.基本上,这只是要求NDIS告诉我们它所知道的所有接口.

虽然它是迭代的,但它做了两件事.首先,它询问WZC它是否知道接口(即接口的驱动程序是否注册了WZC).如果确实如此,那么我们就知道它是符合WZC标准的无线设备,我们可以获得更多信息并返回WirelessZeroConfig界面.

然后我们要求NDIS是设备报告为无线的驱动程序.如果是,我们将获得无线的NDIS信息并返回无线接口.

其他所有东西都变成了通用的NetworkInterface.

那么无线设备如何显示为通用的NetworkInterface?简单.它的驱动程序没有向WZC注册,也没有通过NDIS报告它是无线的.我们的代码无法检测到驱动程序未报告的内容.这实际上与较旧的思科卡有些相似,后者使用Cico专有接口来实现无线功能.它们在物理上是无线设备,但由于软件没有告诉我们它,并且由于我们没有查询任何专有API,我们所能做的就是返回适配器的通用NDIS信息.

如果您有这样的设备,唯一的办法是与适配器OEM交谈,看看它们是否有可以使用的API.

标签:c,wifi,compact-framework
来源: https://codeday.me/bug/20190705/1385200.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有