当前位置:首页 > 期末作业
系统模块:
界面模块:包括开始按钮,结束按钮,图像显示界面,最大最小化关闭按钮,主框架。
功能模块:获取网卡信息,获取SSID信息,初始化任务,信息显示任务。
附录:
获取信号强度列表源码; #ifndef UNICODE #define UNICODE #endif
#include \
// Need to link with Wlanapi.lib and Ole32.lib #pragma comment(lib, \#pragma comment(lib, \int wmain() {
// Declare and initialize variables. HANDLE hClient = NULL;
DWORD dwMaxClient = 2; // DWORD dwCurVersion = 0; DWORD dwResult = 0; DWORD dwRetVal = 0; int iRet = 0;
WCHAR GuidString[39] = {0}; unsigned int i, j, k;
/* variables used for WlanEnumInterfaces */ PWLAN_INTERFACE_INFO_LIST pIfList = NULL; PWLAN_INTERFACE_INFO pIfInfo = NULL;
PWLAN_AVAILABLE_NETWORK_LIST pBssList = NULL; PWLAN_AVAILABLE_NETWORK pBssEntry = NULL; int iRSSI = 0;
dwResult = WlanOpenHandle(dwMaxClient, NULL, &dwCurVersion, &hClient); if (dwResult != ERROR_SUCCESS) {
wprintf(L\ return 1;
// You can use FormatMessage here to find out why the function failed }
dwResult = WlanEnumInterfaces(hClient, NULL, &pIfList); if (dwResult != ERROR_SUCCESS) {
wprintf(L\ return 1;
// You can use FormatMessage here to find out why the function failed } else {
wprintf(L\ wprintf(L\ for (i = 0; i < (int) pIfList->dwNumberOfItems; i++) {
pIfInfo = (WLAN_INTERFACE_INFO *) &pIfList->InterfaceInfo[i]; wprintf(L\ Interface Index[%u]:\\t %lu\\n\ iRet = StringFromGUID2(pIfInfo->InterfaceGuid, (LPOLESTR)
&GuidString,
sizeof(GuidString)/sizeof(*GuidString));
// For c rather than C++ source code, the above line needs to be
// iRet = StringFromGUID2(&pIfInfo->InterfaceGuid, (LPOLESTR) &GuidString,
// sizeof(GuidString)/sizeof(*GuidString)); if (iRet == 0)
wprintf(L\ else {
wprintf(L\ InterfaceGUID[%d]: %ws\\n\ }
wprintf(L\ Interface Description[%d]: %ws\ pIfInfo->strInterfaceDescription); wprintf(L\
wprintf(L\ Interface State[%d]:\\t \ switch (pIfInfo->isState) {
case wlan_interface_state_not_ready: wprintf(L\ break;
case wlan_interface_state_connected: wprintf(L\ break;
case wlan_interface_state_ad_hoc_network_formed: wprintf(L\ break;
case wlan_interface_state_disconnecting: wprintf(L\ break;
case wlan_interface_state_disconnected: wprintf(L\ break;
case wlan_interface_state_associating:
wprintf(L\ break;
case wlan_interface_state_discovering:
wprintf(L\configuration is discovering settings for the network\\n\
break;
case wlan_interface_state_authenticating:
wprintf(L\ break; default:
wprintf(L\ break;
}
wprintf(L\
dwResult = WlanGetAvailableNetworkList(hClient, &pIfInfo->InterfaceGuid,
0, NULL, &pBssList);
if (dwResult != ERROR_SUCCESS) {
wprintf(L\ dwResult); dwRetVal = 1;
// You can use FormatMessage to find out why the function failed } else {
wprintf(L\for this interface\\n\
wprintf(L\ Num Entries: %lu\\n\\n\pBssList->dwNumberOfItems);
for (j = 0; j < pBssList->dwNumberOfItems; j++) { pBssEntry =
(WLAN_AVAILABLE_NETWORK *) & pBssList->Network[j];
wprintf(L\ Profile Name[%u]: %ws\\n\j, pBssEntry->strProfileName);
wprintf(L\ SSID[%u]:\\t\\t \
if (pBssEntry->dot11Ssid.uSSIDLength == 0) wprintf(L\ else {
for (k = 0; k < pBssEntry->dot11Ssid.uSSIDLength; k++) { wprintf(L\(int) pBssEntry->dot11Ssid.ucSSID[k]); }
wprintf(L\ }
wprintf(L\ BSS Network type[%u]:\\t \ switch (pBssEntry->dot11BssType) {
case dot11_BSS_type_infrastructure : wprintf(L\(%u)\\n\pBssEntry->dot11BssType);
break;
case dot11_BSS_type_independent: wprintf(L\(%u)\\n\pBssEntry->dot11BssType);
共分享92篇相关文档