2016-01-14 2 views
0

Мой компьютер подключен к маршрутизатору сети, который я хочу проверить, но не беспроводной ПК подключен с помощью кабеля к маршрутизатору. Но мое устройство Android подключено к беспроводной сети.Как я могу сканировать и перечислить все подключенные устройства к беспроводной сети, я получаю исключение?

Так что в логике в этом случае результаты в списке должны быть моим компьютером и моим Android-устройством.

Это то, что я использую в настоящее время управляется WiFi API:

managed wifi api

Это мой код:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using NativeWifi; 

namespace ScanWifi 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 

      WlanClient client = new WlanClient(); 
      try 
      { 
       foreach (WlanClient.WlanInterface wlanIface in client.Interfaces) 
       { 

        Wlan.WlanBssEntry[] wlanBssEntries = wlanIface.GetNetworkBssList(); 

        foreach (Wlan.WlanBssEntry network in wlanBssEntries) 
        { 
         int rss = network.rssi; 
         byte[] macAddr = network.dot11Bssid; 

         string tMac = ""; 

         for (int i = 0; i < macAddr.Length; i++) 
         { 

          tMac += macAddr[i].ToString("x2").PadLeft(2, '0').ToUpper(); 

         } 

         listView1.Items.Add("Found network with SSID {0}." + System.Text.ASCIIEncoding.ASCII.GetString(network.dot11Ssid.SSID).ToString()); 
         listView1.Items.Add("Signal: {0}%."+ network.linkQuality); 
         listView1.Items.Add("BSS Type: {0}."+ network.dot11BssType); 
         listView1.Items.Add("MAC: {0}.", tMac); 
         listView1.Items.Add("RSSID:{0}", rss.ToString()); 

        } 
        Console.ReadLine(); 
       } 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 

     } 
    } 
} 

При запуске программы я исключение на WlanApi.cs на линия:

Wlan.ThrowIfError(
       Wlan.WlanOpenHandle(Wlan.WLAN_CLIENT_VERSION_XP_SP2, IntPtr.Zero, out negotiatedVersion, out clientHandle)); 

System.ComponentModel.Win32Exception 'произошло в M anagedWifi.dll Служба не была запущена

ответ

0

Согласно документации функции [WlanOpenHandle ][1], проблема заключается в том, что Wireless Zero Configuration (WZC) служба не запущена на вашем компьютере:

WlanOpenHandle вернет сообщение об ошибке, если служба беспроводной настройки нуля (WZC) не была запущена или служба WZC не реагирует.

Однако, в зависимости от вашей платформы, возможно, также, что вы просто передаете неправильные параметры функции WlanOpenHandle. Вы пробовали передать Wlan.WLAN_CLIENT_VERSION_LONGHORN в качестве первого параметра?

+0

Dirk no i не пробовал. Как это передать? У меня нет этой функции в моем коде. Мне нужно загрузить управляемый источник api wifi? –