0

私の Windows フォームでは、アプリケーションは wifi 信号強度を抽出し、結果をテキスト ボックスに出力することになっています。

エラーなしで問題なく準拠していますが、実行すると、次のステートメントの「in」が強調表示され、Management Exception Unhandled エラーが発生します。

foreach (ManagementObject mo in searcher.Get()).

この問題を修正するためにコードを編集する方法がわかりません。最終的に、フォームのテキスト ボックスに現在の Wi-Fi 信号強度を表示できるようになります。

コード:

class NativeWiFi
{
    public string wifiStatus;

    public NativeWiFi() //gets signal strength
    {
       ManagementObjectSearcher searcher = new
       ManagementObjectSearcher(@"root\WMI", "select Ndis80211ReceivedSignalStrength
       from MSNdis_80211_ReceivedSignalStrength where active=true");
       StringBuilder sb = new StringBuilder(); 

        //output as a string 
        foreach (ManagementObject mo in searcher.Get()) //**PROBLEM IS HERE**
        {
            sb.Append( mo["Ndis80211ReceivedSignalStrength"]);

        }
        wifiStatus = sb.ToString();  
    }

}   

形:

private void Form1_Load(object sender, EventArgs e) // on load, create timer
{          
    var timer = new Timer();
    timer.Tick += new EventHandler(timer_Tick);
    timer.Interval = 2000; //2 seconds
    timer.Start();
}

//after 2 seconds, update the text box called 'wifi' to output current wifi strength

void timer_Tick(object sender, EventArgs e) 
{
  wifi.Text = signal.wifiStatus;
}

これらを連携させる方法はありますか?ありがとう。

4

1 に答える 1

1

私も についてのいくつかの問題に悩まされていWMIます。Windows * 7 * およびWindows 8Ndis80211ReceivedSignalStrengthで WMI 機能が情報を 取得できないことがわかりました。WLAN SDK を使用して、WIFI 信号の品質を正常に取得しようとしました。以下の URL で参照できます。 http://msdn.microsoft.com/en-us/library/windows/desktop/ms706765%28v=vs.85%29.aspx

于 2013-09-05T06:14:58.673 に答える