社区
VC.NET
帖子详情
在XP下如何连接WIFI?
shwee886
2009-07-27 09:09:47
请贴出可用代码,能用的话立即给分
...全文
3390
13
打赏
收藏
在XP下如何连接WIFI?
请贴出可用代码,能用的话立即给分
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jamie0510
2011-02-23
打赏
举报
回复
LZ现在实现连接AP的功能了么?实现的话就共享一下吧.我也需要这方面的资料呢,谢谢~
shwee886
2009-07-28
打赏
举报
回复
我已经实现了以下功能:
1、获取AP列表(通过DeviceIoControl)
2、断开连接(通过WZCSetInterface)
现在就差连接AP的功能了
shwee886
2009-07-28
打赏
举报
回复
我已经尝试过WZCSetInterface可以用来断开与AP的连接,据说也可以用来连接AP,但是我一直没有尝试成功,可能是他们说的INTF_ENTRY结构体定义问题吧(函数执行成功,返回值正确,却没有生效)
shwee886
2009-07-28
打赏
举报
回复
To jiangsheng:
WlanConnect属于Native Wifi系列函数,该系列函数在SP3以及VISTA上有比较好的支持,不过现在用户大多是SP2 版本,在这个版本上想使用Native Wifi系列函数必须安装一个支持该系列函数的升级包,但是我们软件被定位为绿色,不能强迫用户安装这种包,所以只好作罢。您有更好的建议吗?
按道理说,比较通用的方法是WZC系列接口(听说是这样),但是这系列接口在XP SP2上支持不是很好(据说INTF_ENTRY 结构体XP 和 CE下不同,但MSDN里只有CE的资料,这系列接口在XP 上属于未公开函数),导致有的函数能用,有的函数不能用。
您是否有更好的建议?
蒋晟
2009-07-28
打赏
举报
回复
没啥通用的方法,软件这一层都不一样了,硬件更不一样。
蒋晟
2009-07-28
打赏
举报
回复
WlanConnect
shwee886
2009-07-28
打赏
举报
回复
补充:主要是因为必须跟硬件的依赖分离开来,而且WLAN API必须要用户SP2装补丁才能使用(我们软件被限制为绿色软件,所以这点不能强迫用户)。我现在可尝试的方法就是采用上层的,通用的方法了,各位有比较可行的方法吗?
shwee886
2009-07-28
打赏
举报
回复
补充:我是在XP SP2下开发
shwee886
2009-07-28
打赏
举报
回复
我有尝试过使用WZC的接口,可以断开,不过我使用WZCSetInterface来连接AP的时候,函数返回正确,但并没有连接上。我找了一些国外的资料,据说是INTF_ENTRY结构体和CE下定义的不一样,但是在XP下这个结构体没有公开,楼上的老兄是否知道什么具体什么原因导致?下面附上我连接AP的代码
typedef DWORD (WINAPI *pWZCQueryInterface)(
LPWSTR pSrvAddr,
DWORD dwInFlags,
PINTF_ENTRY pIntf,
LPDWORD pdwOutFlags
);
typedef DWORD (WINAPI *pWZCSetInterface)(
LPWSTR pSrvAddr,
DWORD dwInFlags,
PINTF_ENTRY pIntf,
LPDWORD pdwOutFlags
);
typedef DWORD (WINAPI * pWZCEnumInterfaces)(
LPWSTR pSrvAddr,
PINTFS_KEY_TABLE pIntfs
);
typedef VOID (WINAPI * pWZCDeleteIntfObj)(
PINTF_ENTRY pIntf
);
typedef VOID (WINAPI * pWZCPassword2Key)(
PWZC_WLAN_CONFIG pwzcConfig,
LPCSTR cszPassword
);
HMODULE hWZClib = LoadLibrary("wzcsapi.dll");
pWZCSetInterface WZCSetInterface = (pWZCSetInterface)GetProcAddress(hWZClib,"WZCSetInterface");
pWZCDeleteIntfObj WZCDeleteIntfObj = (pWZCDeleteIntfObj)GetProcAddress(hWZClib,"WZCDeleteIntfObj");
pWZCQueryInterface WZCQueryInterface = (pWZCQueryInterface)GetProcAddress(hWZClib,"WZCQueryInterface");
USES_CONVERSION;
DWORD dwInFlags = 0, dwOutFlags = 0;
INTF_ENTRY Intf;
// iestr Intf;
memset(&Intf, 0x00, sizeof(INTF_ENTRY));
Intf.wszGuid = A2W(m_strAdapterId.c_str()); // Your Adapter name…
// 查询
//WZCQueryInterface(NULL, INTF_ALL, &Intf, &dwOutFlags);
//WZC_802_11_CONFIG_LIST * pCurConfigList = (WZC_802_11_CONFIG_LIST *)Intf.rdStSSIDList.pData;
WZC_WLAN_CONFIG wzcConfig1;
memset(&wzcConfig1, 0, sizeof(wzcConfig1));
wzcConfig1.Length = sizeof(wzcConfig1);
// dwCtlFlags
wzcConfig1.dwCtlFlags = 0;
// Ssid
WCHAR *szSsidToConnect = L"dlink";
wzcConfig1.Ssid.SsidLength = wcslen(szSsidToConnect);
for(UINT i = 0; i<wzcConfig1.Ssid.SsidLength; i++)
wzcConfig1.Ssid.Ssid[i] = (char)szSsidToConnect[i];
// Privacy
wzcConfig1.Privacy = Ndis802_11WEPDisabled;
wzcConfig1.InfrastructureMode = Ndis802_11Infrastructure;
// Authentication
wzcConfig1.AuthenticationMode = Ndis802_11AuthModeOpen;
DWORD dwDataLen = sizeof(WZC_802_11_CONFIG_LIST);
WZC_802_11_CONFIG_LIST *pNewConfigList = (WZC_802_11_CONFIG_LIST
*)LocalAlloc(LPTR, dwDataLen);
pNewConfigList->NumberOfItems = 1;
pNewConfigList->Index = 0;
memcpy(pNewConfigList->Config, &wzcConfig1, sizeof(wzcConfig1));
Intf.rdStSSIDList.pData = (BYTE*)pNewConfigList;
Intf.rdStSSIDList.dwDataLen = dwDataLen;
pNewConfigList = (WZC_802_11_CONFIG_LIST *)Intf.rdStSSIDList.pData;
dwInFlags = 0;
DWORD dwStatus = WZCSetInterface(NULL, INTF_PREFLIST, (PINTF_ENTRY)&Intf,
&dwInFlags);
LocalFree(pNewConfigList);
蒋晟
2009-07-28
打赏
举报
回复
XP没有WIFI支持,SP2才有,不过WIFI卡公司大多还是在用自己的接口
如果你的WIFI卡可以用WZC控制,那么可以用Windows XP Wireless SDK里面的函数控制。如果不行,联系WIFI卡公司以获得开发接口。
shwee886
2009-07-27
打赏
举报
回复
……我是想在XP下通过编码来实现自己的程序连接WIFI
hhhh63
2009-07-27
打赏
举报
回复
连接WIFI不用写程序,装上驱动就能用了。咱们的程序不分有线无线网。
XP
系统没有
WIFI
连接
图标怎么办?.docx
XP
系统没有
WIFI
连接
图标怎么办?.docx
解决小米1SC手机不能
连接
XP
系统建立的
WIFI
热点的补丁wpa_supplicant
解决小米1SC手机不能
连接
笔记本
XP
系统建立的
WIFI
热点的补丁wpa_supplicant,支持笔记本
XP
系统adhoc形式的
WIFI
热点。
实现Windows
XP
共享
WiFi
无线网络
实现Windows
XP
共享
WiFi
无线网络,
XP
,
WIFI
, 共享, 无线网络, 实现Windows
XP
共享
WiFi
无线网络
360随身
wifi
支持Windows
XP
下ad.docx
360随身
wifi
支持Windows
XP
下ad.docx
xp
发射
wifi
xp
系统发射
wifi
win7、win8可以发射
wifi
,其实在细胞系统下也可以实现如此功能
VC.NET
7,540
社区成员
27,673
社区内容
发帖
与我相关
我的任务
VC.NET
.NET技术 VC.NET
复制链接
扫一扫
分享
社区描述
.NET技术 VC.NET
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章