1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65:
| public string GetNetworks() { IntPtr x, pInfoList, clientHandle; UInt32 a, b, c;
a = WlanOpenHandle(1, IntPtr.Zero, out x, out clientHandle); b = WlanEnumInterfaces(clientHandle, IntPtr.Zero, out pInfoList); c = WlanCloseHandle(clientHandle, IntPtr.Zero);
Console.WriteLine("WlanOpenHandle return code: " + a); Console.WriteLine("Client handle: " + clientHandle.ToString()); Console.WriteLine("WlanEnumInterfaces return code: " + b); Console.WriteLine("WlanCloseHandle return code: " + c); int c_dwNumberOfItems = Marshal.ReadInt32(pInfoList, 0); Console.WriteLine("WLAN_INTERFACE_INFO_LIST.dwNumberOfItems: {0}", c_dwNumberOfItems); int c_dwIndex = Marshal.ReadInt32(pInfoList, 4); Console.WriteLine("WLAN_INTERFACE_INFO_LIST.dwIndex: {0}", c_dwIndex);
int ifListStartOffset = 8; int ifListItemSize = IntPtr.Size + 512 + 4; IntPtr c_InterfaceGuid = Marshal.ReadIntPtr(pInfoList, ifListStartOffset);
Int32 c_isState = Marshal.ReadInt32(pInfoList, ifListStartOffset + IntPtr.Size + 512); Console.WriteLine("Interface state: {0}", c_isState);
return "Success?"; }
[StructLayout(LayoutKind.Sequential)] public struct WLAN_INTERFACE_INFO_LIST { [MarshalAs(UnmanagedType.I4)] public int dwNumberOfItems; [MarshalAs(UnmanagedType.I4)] public int dwIndex; [MarshalAs(UnmanagedType.ByValArray)] public WLAN_INTERFACE_INFO[] InterfaceInfo; }
[StructLayout(LayoutKind.Sequential)] public struct WLAN_INTERFACE_INFO { public IntPtr InterfaceGuid; [MarshalAs(UnmanagedType.LPWStr, SizeConst = 256)] public String strInterfaceDescription; public int isState; }
[DllImport("wlanapi.dll", SetLastError = true)] public static extern uint WlanOpenHandle(int dwClientVersion, IntPtr pReserved, out IntPtr pdwNegotiatedVersion, out IntPtr phClientHandle);
[DllImport("wlanapi.dll", SetLastError = true)] public static extern uint WlanCloseHandle(IntPtr hClientHandle, IntPtr pReserved);
[DllImport("wlanapi.dll", SetLastError = true)] public static extern uint WlanEnumInterfaces(IntPtr hClientHandle, IntPtr pReserverd, out IntPtr ppInterfaceList);
[DllImport("wlanapi.dll", SetLastError = true)] private static extern int WlanScan(IntPtr hClientHandle,IntPtr pInterfaceGuid,IntPtr pDot11Ssid, IntPtr pIeData, IntPtr pReserved); |