2012-09-04 23 views
1

以下功能從系統獲取WiFi信號。它目前在我的表單上顯示一個「0」(表示我假設的強大連接)。我在公司網絡上的一臺工作場所的惠普上運行這臺機器。它似乎沒有外部WiFi按鈕等。是「0」我得到一個真正的價值,還是我需要在真正的無線設備上進行測試?我能獲得一個正確的WiFi信號dBm讀數嗎?

public static int GetSignalStrengthAsInt() 
{ 
    Int32 returnStrength = 0; 
    ManagementObjectSearcher searcher = null; 
    try 
    { 
     searcher = new ManagementObjectSearcher( 
      @"root\WMI", 
      @"select Ndis80211ReceivedSignalStrength 
       from MSNdis_80211_ReceivedSignalStrength 
       where active=true"); 

     // Call the get in order to populate the collection 
     ManagementObjectCollection adapterObjects = searcher.Get(); 

     // Loop though the management object and pull out the signal strength 
     foreach (ManagementObject mo in adapterObjects) 
     { 
      returnStrength = Convert.ToInt32( 
       mo["Ndis80211ReceivedSignalStrength"].ToString()); 
      break; 
     } 
    } 
    catch (Exception) 
    { 
    } 
    finally 
    { 
     if (searcher != null) 
     { 
      searcher.Dispose(); 
     } 
    } 
    return returnStrength;    
} 

returnStrength現在正顯示在文本框中。

+0

檢查http://blogs.technet.com/b/heyscriptingguy/archive/2007/03/22/how-can-i-determine-the-signal-strength-of-a-wireless-connection.aspx我認爲它涵蓋了你的問題 – Casperah

+0

再次感謝您的幫助! –

回答

0

首先請注意,我不知道你的開發環境。根據經驗以下是一般適應症:

  • 信號強度通常是要麼以dB爲單位或以dBm 單位給出。

  • dB用於信噪比。相當好的信號在
    至少18〜20分貝。

  • dBm用於接收的純功率。它通常是在範圍 -20dBm(優秀)到-80dBm(非常差)

0時不能從所述裝置獲得的信息被經常看到。所以我的猜測是你的價值是無效的。

相關問題