2010-02-25 12 views
4

Я очень новичок в Win7 и WMI. Пожалуйста, посоветуйте мне, где можно найти активную точку доступа из WiFi и как получить ssid/rssi для каждой точки доступа.Как получить SSID и RSSI для Win7 с помощью C#

У меня есть использование:

ManagementClass mc = new ManagementClass("root\\WMI", "MSNdis_80211_ServiceSetIdentifier", null);   
ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(@"root\wmi","SELECT * FROM MSNdis_80211_BSSIList"); 

, но я получил 0 результатов. Поддерживается ли этот класс Win7? Кто-нибудь может помочь?

ответ

0

Вместо WMI вы можете использовать Managed Wifi API.

Проверить этот вопрос Get SSID of the wireless network I am connected to with C# .Net on Windows Vista

Некоторое время идти я написал пример использования Дельфи-призмы, очень похож на C#. http://theroadtodelphi.wordpress.com/2009/09/30/detecting-wifi-networks-using-delphi-prism/

+0

Thanx RRUZ, На самом деле я уже использовать управляемые WiFi апи но функция wlan, похоже, не может быть применена и возвращает «Тип или имя пространства имен« Wlan »не удалось найти (вам не хватает директивы using или ссылки на сборку?)». Я использую Visual Studio 2010 и Windows 7. Есть ли какие-либо функции в Visual Studio 2010, чтобы помочь получить SSID и RSSI из Windows 7. – ailhaddin

5

У меня была аналогичная проблема, когда мне нужно, чтобы получить идентификатор SSID подключенного в данный момент сети Wi-Fi, но не чувствовал, как создать оболочку для API из-за его сложности, так фигурировали почему бы не использовать Netsh

 ProcessStartInfo info = new ProcessStartInfo("netsh", "wlan show interfaces"); 
     info.WorkingDirectory = @"%WINDIR%\system32"; 
     info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
     info.CreateNoWindow = true; 
     info.RedirectStandardOutput = true; 
     info.UseShellExecute = false; 
     System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
     proc.StartInfo = info; 
     proc.Start(); 

, то вы можете просто получить результат из proc.StandardOutput.ReadToEnd(); разобрать, что вы хотите от строки:

"\r\n There is 1 interface on the system: \r\n\r\n 
Name     : Wireless Network Connection\r\n 
Description   : Atheros AR9285 Wireless Network Adapter\r\n 
GUID     : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\r\n 
Physical address  : xx:xx:xx:xx:xx:xx\r\n 
State     : connected\r\n 
SSID     : Dynex2\r\n 
BSSID     : xx:xx:xx:xx:xx:xx\r\n 
Network type   : Infrastructure\r\n 
Radio type    : 802.11g\r\n 
Authentication   : WPA2-Personal\r\n 
Cipher     : CCMP\r\n 
Connection mode  : Auto Connect\r\n 
Channel    : 1\r\n 
Receive rate (Mbps) : 54\r\n 
Transmit rate (Mbps) : 54\r\n 
Signal     : 100% \r\n 
Profile    : Dynex2 \r\n\r\n 
Hosted network status : Not available\r\n\r\n" 

Намного проще разобрать строку, чем написать оболочку для API Надеюсь, что это помогает

+0

Как использовать его в Windows XP,? Я думаю, что команда не работает в XP, работает в Winows 7 – Ahmed

 Смежные вопросы

  • Нет связанных вопросов^_^