Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
2 / 2 / 0
Регистрация: 14.01.2011
Сообщений: 18
1

Неккоректное получение списка беспроводных интерфейсов

09.05.2011, 07:46. Показов 2573. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Народ, помогите! Пишу программу для поиска доступных Wi-Fi сетей и отображения подробной информации о них. Решено писать на Delphi с использованием Windows Wi-FI Native Api. В чём проблема: при получении информации о сетевых интерфейсах выводится не совсем корректная информация об их количестве. Код приведён ниже. ОС: Windows 7 x32
Delphi
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
66
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;
 
type
  WLAN_INTERFACE_STATE = (wlan_interface_state_not_ready = 0,
                          wlan_interface_state_connected = 1,
                          wlan_interface_state_ad_hoc_network_formed = 2,
                          wlan_interface_state_disconnecting = 3,
                          wlan_interface_state_disconnected = 4,
                          wlan_interface_state_associating = 5,
                          wlan_interface_state_discovering = 6,
                          wlan_interface_state_authenticating = 7);
 
  PWLAN_INTERFACE_STATE = ^WLAN_INTERFACE_STATE;
 
  WLAN_INTERFACE_INFO = packed record
   InterfaceGuid:TGuid;
   strInterfaceDescription: array [0..255] of WCHAR;
   isState:WLAN_INTERFACE_STATE;
  end;
 
  PWLAN_INTERFACE_INFO = ^WLAN_INTERFACE_INFO;
 
  WLAN_INTERFACE_INFO_LIST = packed record
   dwNumberOfItems:DWORD;
   dwIndex:DWORD;
   InterfaceInfo: array of WLAN_INTERFACE_INFO;
  end;
 
  PWLAN_INTERFACE_INFO_LIST = ^WLAN_INTERFACE_INFO_LIST;
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  function WlanOpenHandle(dwClientVersion:DWORD;pReserved:pointer;pdwNegotiatedVersion:PDWORD;phClientHandle:PHANDLE):DWORD; stdcall; external 'wlanapi.dll' name 'WlanOpenHandle';
  function WlanEnumInterfaces(hClientHandle:THandle;pReserved:pointer;ppInterfaceList:PWLAN_INTERFACE_INFO_LIST):DWORD; stdcall; external 'wlanapi.dll' name 'WlanEnumInterfaces';
  procedure WlanFreeMemory(pMemory:pointer); stdcall; external 'wlanapi.dll' name 'WlanFreeMemory';
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
var
Hndl:THandle;
NegotiatedVersion,res:DWORD;
InterfaceList:WLAN_INTERFACE_INFO_LIST;
begin
res := WLanOpenHandle(2,nil,@NegotiatedVersion,@Hndl);
res := WlanEnumInterfaces(Hndl,nil,@InterfaceList);
ShowMessage(IntToStr(InterfaceList.dwNumberOfItems));
WlanFreeMemory(@InterfaceList);
end;
 
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.05.2011, 07:46
Ответы с готовыми решениями:

Получение всех сетевых интерфейсов
Здравствуйте. Недавно начал изучать C# и в целях обучения переношу свои маленькие программы с...

Сериализация и десериализация списка интерфейсов
Привет. Есть интерфейс Shape. Есть несколько реализаций этого интерфейса (Sphere, Box etc)....

Получение списка полей таблицы и определение первичного ключа из этого списка
Приветствую всех. Долго бьюсь над одной локальной задачей, необходимо извлечь список полей для...

Вывод списка категорий интерфейсов не соответствует тому, что показывает утилита OleView, почему?
Вот код, за основу взят код Роджерсона из его главы 6, я всё поупрощал донельзя, все проверки...

1
0 / 0 / 2
Регистрация: 29.03.2013
Сообщений: 54
14.08.2014, 08:45 2
Привет, а тема еще актуальна?

Хочу написать программку нотифер, то есть при появлении определенной точки доступа она бы сигналила.
фактически нужно просто брать список и по фильтру искать в нем нужный SSID

подскажите, если не сложно какой-нибудь исходник для этого или компоненты какие-то

Добавлено через 11 минут
нашел функцию винапи http://msdn.microsoft.com/en-u... s.85).aspx

ни разу с винапи не работал правда, не знаю с какой стороны к ней подходить
0
14.08.2014, 08:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.08.2014, 08:45
Помогаю со студенческими работами здесь

Разработка интерфейсов, использование механизма наследования интерфейсов и применение их в программах
Имеется код, необходимо реализовать, и протестировать эти интерфейсы IComparable (сравнимый),...

Неккоректное отображение фотогалереи
В магазине VirtueMart есть фотогалерея, при включенном SEO она отображается не так как надо:) ...

Неккоректное отображение шрифта
Здравствуйте! на изображении четко видно что свернутое окно в панели упарвления имеет какой то...

Неккоректное разворачивание окон
Существует проблема с разворачиваем видео, игр и других приложений на полный экран. Т.е видео...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru