精易论坛

标题: Wlan API开发说明 [打印本页]

作者: lostkeys    时间: 2015-2-13 17:02
标题: Wlan API开发说明
本帖最后由 宇智波·佐助 于 2015-2-20 12:47 编辑


关于Wlan API开发,看了很多文档,发现易语言在这方面没有详细的开发说明与接入。(可能跟Windows上的无线使用有关系)接下来我给大家大概说明一下,首先我们先认识一下,所需的几个API函数


‘ 打开无线网卡                          WlanOpenHandle
       参数
             dwClientVersion:系统版本(分为Vista系统版本以上,对应值为2,Vista系统版本以下,对应值为1)
             pReserved:此参数在MSDN中也未介绍是什么意思,只能从字面上理解为保存,其值为0
             pdwNegotiatedVersion:打开网卡后所返回的会话ID,在整个的操作操作中都需要次参数,这个值通常是最高版本支持的客户Duan和                                                  服务器
             phClientHandle:正常打开网卡后所返回的网卡句柄

‘ 枚举无线接口                          WlanEnumIntefaces
      参数
             hClientHandle:通过打开网卡后所返回的网卡句柄
             pReserved:很抱歉,此参数在MSDN中也未查找到是什么意思,在此我也不做任何的说明
             ppInterfaceList:返回无线接口列表指针(因为易语言的关系只能通过传指针的方式,不然是返回一个WLAN_INTERFACE_INFO的数据结构,其中InterfaceGuid为无线网卡的GUID,strInterfaceDescription为无线网卡的描述,enum为无线网卡的状态)

‘ 获取保存下来的无线配置文件     WlanGetProfileList
      参数
             hClientHandle:通过打开网卡后所返回的网卡句柄
             pInterfaceGuid:无线网卡的GUID(换句说就是无线网卡的物理地址)
             pReserved:同WlanOpenHandle中的pReserved一样,其值为0
             ppProfileList:返回无线接口列表指针(因为易语言的关系只能通过传指针的方式,不然是返回一个WLAN_PROFILE_INFO的数据结构,,其中strProfileName为配置文件中的无线名称,dwFlags为一个标识位,其值为0)
            
‘ 刷新附近的无线网络                 WlanScan
       参数
             hClientHandle:通过打开网卡后所返回的网卡句柄
             pInterfaceGuid:无线网卡的GUID(换句说就是无线网卡的物理地址)
             pDot11Ssid:指定要扫描的网络SSID,此值是为空的,所以不用填写,即0就可以了
             pIeData:一个包含信息探测的指针,此值的内容为空,所以不用填写,即0就可以了
             pReserved:一个预览的值,为空

‘ 指定网卡获取附近无线网络信息    WlanGetAvailableNetworkList
       参数
              hClientHandle:通过打开网卡后所返回的网卡句柄
              pInterfaceGuid:无线网卡的GUID(换句说就是无线网卡的物理地址)
              dwFlags:返回列表中的一组控制网络类型标志,我们设定为1(0x00000002),扫描所有的网络
              pReserved:保留供将来使用
              ppAvailableNetworkList:返回一个无线列表的指针(因为易语言的关系只能通过传指针的方式,不然是返回一个WLAN_AVAILABLE_NETWORK_LIST的数据结构,,其中strProfileNam为无线名称,wlanSignalQuality无线信号值,dot11Ssid_ucSSID为无线SSID,其他信息,大家自己查一下MSDN吧,因为开发需要我就翻译了这三个。)

              
            


   介绍了这么多的API函数,我们接下来讲解一下源码
通过汇编的“83, 51, 192, 100, 139, 29, 24, 0, 0, 0, 100, 139, 13, 48, 0, 0, 0, 133, 201, 120, 12, 139, 137, 164, 0, 0, 0, 131, 249, 6, 114, 1, 64, 91, 139, 229, 93, 195 ”的机器码来判断系统版本是否为Vista版本以上或以下。通过WlanOpenHandle打开网卡获取到网卡句柄后,通过此句柄利用WlanEnumInterfaces函数获取到本地无线网卡列表。易语言的关系,我们只能通过指针方式利用RtlMoveMemory(内存拷贝)函数,内存数据复制到WLAN_INTERFACE_INFO结构中
此例子就是一个打开网卡的例子。剩下的我就不多说了,附上源码,大家学习一下吧。


源码下载
收点精币,辛苦费
文章原地址:

作者: lostkeys    时间: 2015-2-13 17:03
沙发抢座
作者: 网络注册会员    时间: 2015-2-13 17:07
支持一下我顶
作者: 易模块    时间: 2015-2-13 17:20
支持,我也来学习学习
作者: [小L]    时间: 2015-2-13 17:24
高科技啊,赞一个!!

作者: cyb542316    时间: 2015-2-13 17:51
谢谢分享!!

作者: 993651481    时间: 2015-2-13 21:00
正在找源码顶楼主

作者: KEY心碎    时间: 2015-2-13 22:50
感谢分享!谢谢
作者: qq420345437    时间: 2015-2-14 03:42
看不懂。。。。很厉害
作者: 撩唇笔    时间: 2015-2-14 08:48
很好的文章
作者: 黑莓    时间: 2015-2-14 09:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: wjj281005321    时间: 2015-2-14 10:40
秒杀隐藏帖..但还是希望楼主多发精品好帖啦.....
作者: 545958498    时间: 2015-2-14 15:35
参考参考                              

作者: 吃饭不洗碗    时间: 2015-2-15 08:49
很好收下看看
作者: XBy    时间: 2015-2-15 19:00
感谢楼主分享。。。

作者: woaifamily    时间: 2015-2-16 11:15
感谢分享。。。先收藏了!!
作者: Hwak    时间: 2015-2-19 21:03
看看一下!!!

作者: 158125957    时间: 2015-2-19 21:13
拿钱来的  还没学到这一步了
作者: 易团俊    时间: 2015-2-19 23:00
好像很厉害看看
作者: FuChen    时间: 2015-2-19 23:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: 308088566    时间: 2015-2-20 02:47
{:soso_e100:}谢谢分享

作者: qwe521223    时间: 2015-2-20 07:22
支持楼主,感谢分享.回复查看!!...
作者: 夜的静night    时间: 2015-2-20 08:36
谢谢分享源码

作者: yjhqq1    时间: 2015-2-20 10:37
膜拜key大神

作者: zspokzy    时间: 2015-2-20 12:25
老规矩,先回后下!!!!!!!

作者: 454990668    时间: 2015-2-20 16:35
Wlan API开发说明
作者: 六升臣    时间: 2015-2-23 14:11
感谢分享,很给力!~
作者: DKSO    时间: 2015-3-6 00:41
多谢楼主分享!
作者: taohongsen1990    时间: 2015-3-10 23:22
谢谢分享                       
作者: 1964618801    时间: 2016-1-14 23:59
非常感谢,学习啦,
作者: 诗夜    时间: 2018-7-24 12:51
谢谢分享!
作者: 诗夜    时间: 2018-7-24 12:51
          。
作者: moninla    时间: 2020-11-1 20:53
这个源码取的WALN列表只能取第一个剩下的都是第一个;改造后;或者是不改造都会出现中文WIFI乱码情况




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4