当前位置: 首页 > news >正文

试玩平台网站怎么做查看网站信息图标怎么做

试玩平台网站怎么做,查看网站信息图标怎么做,住房和城乡建设厅官网证件查询,柳州网络推广公司哪家好From#xff1a;http://blog.csdn.net/xajhuang/archive/2008/12/02/3419512.aspx 在 Windows CE 下自带有无线网卡的配置和连接程序#xff0c;可是我的系统剪裁掉了资源管理器和任务栏#xff0c;导致自带的无线网卡配置程序不能再使用了#xff0c;只好自力更生。 我的…Fromhttp://blog.csdn.net/xajhuang/archive/2008/12/02/3419512.aspx 在 Windows CE 下自带有无线网卡的配置和连接程序可是我的系统剪裁掉了资源管理器和任务栏导致自带的无线网卡配置程序不能再使用了只好自力更生。 我的环境是 S3C2440 WinCE 5.0 VNUWCL5(威盛无线网卡)及驱动程序。使用 Automatic Configuration Functions API 一、枚举系统中可用的无线网络设备       下面的函数可以枚举出系统中所有可用的无线网卡设备的GUID为了简化我选择第一块可用的无线网卡来操作       BOOL GetFirstWirelessCard(PTCHAR pCard) { if (!pCard) { return FALSE; } INTFS_KEY_TABLE IntfsTable; IntfsTable.dwNumIntfs 0; IntfsTable.pIntfs NULL; _tcscpy(pCard, TEXT()); // 枚举系统中可用的无线网卡DWORD dwStatus WZCEnumInterfaces(NULL, IntfsTable); if (dwStatus ! ERROR_SUCCESS) { RETAILMSG(DBG_MSG, (TEXT(WZCEnumInterfaces() error 0x%08X\n),dwStatus)); return FALSE; } // 判断无线网卡的数量可以根据无线网卡数量来枚举出所有可用的无线网卡if (!IntfsTable.dwNumIntfs) { RETAILMSG(DBG_MSG, (TEXT(System has no wireless card.\n))); return FALSE; } _tcscpy(pCard, IntfsTable.pIntfs[0].wszGuid); LocalFree(IntfsTable.pIntfs); return TRUE; }  二、获取无线网络信息         获取到了系统可用的无线网卡后我们就可以利用它的 GUID 号来进行进一步的操作了首先要做的事情就是得到该无线网卡的信息以及该无线网卡扫描到的 WIFI 网关信息。         以下函数可以获取到该无线网卡及扫描的到的无线 AP 信息 // // pCard: 无线网卡GUID // pIntf: 无线网卡配置信息结果体 // pOutFlags: 网卡配置信息掩码标志 // BOOL GetWirelessCardInfo(PTCHAR pCard, PINTF_ENTRY_EX pIntf, PDWORD pOutFlags) { TCHAR *szWiFiCard NULL; // 参数校验if (!pCard || !pIntf || !pOutFlags) { RETAILMSG(DBG_MSG, (TEXT(Param Error.\n))); return FALSE; } szWiFiCard pCard; *pOutFlags 0; // 初始化无线网卡信息ZeroMemory(pIntf, sizeof(INTF_ENTRY_EX)); // 设置GUID 号pIntf-wszGuid szWiFiCard; // 查询无线网卡信息DWORD dwStatus WZCQueryInterfaceEx(NULL, INTF_ALL, pIntf, pOutFlags); if (dwStatus ! ERROR_SUCCESS) { RETAILMSG(DBG_MSG, (TEXT(WZCQueryInterfaceEx() error 0x%08X\n), dwStatus)); return FALSE; } return TRUE; } 三、判断连接状态         我们可以通过无线网卡的状态来判断当前无线网卡是否已经和无线AP建立了连接 BOOL IsAssociated(const INTF_ENTRY_EX Intf, const DWORD dwOutFlags) { if (dwOutFlags INTF_BSSID) { PRAW_DATA prdMAC (PRAW_DATA)(Intf.rdBSSID); // 判断BSSID 的MAC 地址是否有效来判断是否和无线AP建立了连接if (prdMAC NULL || prdMAC-dwDataLen 0 || (!prdMAC-pData[0] !prdMAC-pData[1] !prdMAC-pData[2] !prdMAC-pData[3] !prdMAC-pData[4] !prdMAC-pData[5])) { RETAILMSG(DBG_MSG, (TEXT((This wifi card is not associated to any)\n))); return FALSE; } else { RETAILMSG(DBG_MSG, (TEXT((This wifi card is associated state)\n))); return TRUE; } } else { return FALSE; } } 四、获取无线AP信息         获取了无线网卡的信息后可以通过无线网卡枚举出当前所有可用的无线AP的SSID名称以及加密模式等等所有可用信息一下函数可以实现该功能 void GetWirelseeListSSID(const PRAW_DATA prdBSSIDList, HWND hListCtlWnd) { if (prdBSSIDList NULL || prdBSSIDList-dwDataLen 0) { RETAILMSG(DBG_MSG, (TEXT(null entry.\n))); } else { PWZC_802_11_CONFIG_LIST pConfigList (PWZC_802_11_CONFIG_LIST)prdBSSIDList-pData; //RETAILMSG(DBG_MSG, (TEXT([%d] entries.\n), pConfigList-NumberOfItems)); uint i; // 枚举所有无线AP for (i 0; i pConfigList-NumberOfItems; i) { PWZC_WLAN_CONFIG pConfig (pConfigList-Config[i]); RAW_DATA rdBuffer; rdBuffer.dwDataLen pConfig-Ssid.SsidLength; rdBuffer.pData pConfig-Ssid.Ssid; TCHAR tSsid[MAX_PATH]; // 将SSID 的ASCII 码转化成字符串PrintSSID(rdBuffer, tSsid); if (hListCtlWnd) { if (ListBox_FindString(hListCtlWnd, 0, tSsid) LB_ERR) { ListBox_AddString(hListCtlWnd, tSsid); } } //RETAILMSG(DBG_MSG, (TEXT(\n))); } } } 五、连接到指定的无线AP // // pCard: 无线网卡GUID // pSSID: 无线AP SSID号 // bAdhoc: 是否点对点的WIFI 连接 // ulPrivacy: 加密模式(WEP/WPA....) // ndisMode: 认证模式(Open/Share) // iKeyIndex: 密钥索引(1-4) // pKey: 密码 // iEapType: 802.11 认证模式 // BOOL WirelessConnect(PTCHAR pCard, PTCHAR pSSID, BOOL bAdhoc, ULONG ulPrivacy, NDIS_802_11_AUTHENTICATION_MODE ndisMode, int iKeyIndex, PTCHAR pKey, int iEapType) { BOOL bRet FALSE; if (!pSSID) { RETAILMSG(DBG_MSG, (TEXT(Param Error.\n))); return FALSE; } else { WZC_WLAN_CONFIG wzcConfig; ZeroMemory(wzcConfig, sizeof(WZC_WLAN_CONFIG)); wzcConfig.Length sizeof(WZC_WLAN_CONFIG); wzcConfig.dwCtlFlags 0; wzcConfig.Ssid.SsidLength _tcslen(pSSID); for (UINT i 0; i wzcConfig.Ssid.SsidLength; i) { wzcConfig.Ssid.Ssid[i] (CHAR)pSSID[i]; } if (bAdhoc) { wzcConfig.InfrastructureMode Ndis802_11IBSS; } else { wzcConfig.InfrastructureMode Ndis802_11Infrastructure; } wzcConfig.AuthenticationMode ndisMode; wzcConfig.Privacy ulPrivacy; if (pKey NULL || _tcslen(pKey) 0) { // 对密钥进行转换bRet InterpretEncryptionKeyValue(wzcConfig, 0, NULL, TRUE); wzcConfig.EapolParams.dwEapType iEapType; wzcConfig.EapolParams.dwEapFlags EAPOL_ENABLED; wzcConfig.EapolParams.bEnable8021x TRUE; wzcConfig.EapolParams.dwAuthDataLen 0; wzcConfig.EapolParams.pbAuthData 0; } else { RETAILMSG(DBG_MSG, (TEXT(WirelessConnect iKeyIndex %d.\n), iKeyIndex)); bRet InterpretEncryptionKeyValue(wzcConfig, iKeyIndex, pKey, FALSE); } // 连接到指定的无线AP并将该AP添加到首先无线AP中AddToPreferredNetworkList(pCard, wzcConfig, pSSID); } return bRet; } 六、密钥转换         输入的密钥需要通过加密方式进行一定的转化以下函数可以完成改功能 static void EncryptWepKMaterial(IN OUT WZC_WLAN_CONFIG* pwzcConfig) { BYTE chFakeKeyMaterial[] { 0x56, 0x09, 0x08, 0x98, 0x4D, 0x08, 0x11, 0x66, 0x42, 0x03, 0x01, 0x67, 0x66 }; for (int i 0; i WZCCTL_MAX_WEPK_MATERIAL; i) pwzcConfig-KeyMaterial[i] ^ chFakeKeyMaterial[(7*i)%13]; } BOOL InterpretEncryptionKeyValue(IN OUT WZC_WLAN_CONFIG wzcConfig, IN int iKeyIndex, IN PTCHAR pKey, IN BOOL bNeed8021X) { if(wzcConfig.Privacy Ndis802_11WEPEnabled) { if(!bNeed8021X pKey) { wzcConfig.KeyIndex iKeyIndex; wzcConfig.KeyLength _tcslen(pKey); if((wzcConfig.KeyLength 5) || (wzcConfig.KeyLength 13)) { for(UINT i0; iwzcConfig.KeyLength; i) wzcConfig.KeyMaterial[i] (UCHAR)pKey[i]; } else { if((pKey[0] ! TEXT(0)) || (pKey[1] ! TEXT(x))) { RETAILMSG(DBG_MSG, (TEXT(Invalid key value.\n))); return FALSE; } pKey 2; wzcConfig.KeyLength wcslen(pKey); if((wzcConfig.KeyLength ! 10) (wzcConfig.KeyLength ! 26)) { RETAILMSG(DBG_MSG, (TEXT(Invalid key value.\n))); return FALSE; } wzcConfig.KeyLength 1; for(UINT i0; iwzcConfig.KeyLength; i) { wzcConfig.KeyMaterial[i] (HEX(pKey[2 * i]) 4) | HEX(pKey[2 * i 1]); } } EncryptWepKMaterial(wzcConfig); wzcConfig.dwCtlFlags | WZCCTL_WEPK_PRESENT; } } else if(wzcConfig.Privacy Ndis802_11Encryption2Enabled || wzcConfig.Privacy Ndis802_11Encryption3Enabled) { if(!bNeed8021X) { wzcConfig.KeyLength wcslen(pKey); if((wzcConfig.KeyLength 8) || (wzcConfig.KeyLength 63)) { RETAILMSG(DBG_MSG, (TEXT(WPA-PSK/TKIP key should be 8-63 char long string.\n))); return FALSE; } char szEncryptionKeyValue8[64]; // longest key is 63 memset(szEncryptionKeyValue8, 0, sizeof(szEncryptionKeyValue8)); WideCharToMultiByte(CP_ACP, 0, pKey, wzcConfig.KeyLength 1, szEncryptionKeyValue8, wzcConfig.KeyLength 1, NULL, NULL); WZCPassword2Key(wzcConfig, szEncryptionKeyValue8); EncryptWepKMaterial(wzcConfig); wzcConfig.dwCtlFlags | WZCCTL_WEPK_XFORMAT | WZCCTL_WEPK_PRESENT | WZCCTL_ONEX_ENABLED; } wzcConfig.EapolParams.dwEapFlags EAPOL_ENABLED; wzcConfig.EapolParams.dwEapType DEFAULT_EAP_TYPE; wzcConfig.EapolParams.bEnable8021x TRUE; wzcConfig.WPAMCastCipher Ndis802_11Encryption2Enabled; } return TRUE; }       通过以上操作完全可以连接到可用的无线AP了再加上些适当的UI程序完全可以用来替代 Windows CE 自带的无线配置程序了我再连接中放置了一个简单的而完整的测试程序相信大家看了以后都知道怎么操作无线网卡了 http://download.csdn.net/source/927575转载于:https://www.cnblogs.com/mugua/archive/2009/12/24/1631531.html
http://www.pierceye.com/news/755656/

相关文章:

  • 网站后台凡科建设有做网站维护的
  • 搭建网站需要什么软件上海在线
  • led灯外贸网站建设网站代码怎么优化
  • 网站建设维护什么意思江苏网络推广专员
  • 潍坊网站开发asp培训珠海市网站建设公司
  • 用什么做响应式网站建行个人余额查询网站
  • 做网站网站代理怎么找客源企业团建公司
  • 电子商务网站开发实战济南兼职做网站
  • 怎样创建网站视频学历提升的重要性
  • 百度搜索引擎录入网站1_ 掌握网站开发的基本流程 要求:熟悉网站开发与设计的基本流程.
  • 广州做网站建设如何在别人网站挂黑链
  • 宁德北京网站建设任丘建设银行网站
  • 积极加强网站建设连锁会员管理系统
  • 河南做外贸网站的公司简介wordpress做教育网站
  • 兴城做网站推广的企业网站后台管理软件
  • 自定义优定软件网站建设申请永久网站空间
  • 免费发布信息的网站平台怎么做网站统计
  • 制作网站的过程是对信息的龙海市住房和城乡建设局网站
  • 鱼台县建设局网站免费ppt模板制作软件
  • 质量好网站建设多少钱黄冈网站建设哪家快些
  • 使用阿里云部署wordpressseo搜索排名影响因素主要有
  • 大连制作网站建站教程图解
  • 百度的合作网站有哪些网站建设费用写创意
  • 建设个人网站ip护肤品网页设计图片
  • 德州网站建设优化金阳龙泉苑网站建设
  • 建站公司最新价格网站素材网
  • 高品质的网站开发公优酷网站谁做的
  • 广西兴业县建设局网站湖北天健建设集团有限公司网站
  • 学多久可以做网站 知乎中国100强企业名单公布
  • 江阴网站优化公司开源的 二次网站开发