以下のこの関数は、システムからWiFi信号を取得します。現在、フォームに「0」が表示されています(私が想定している強い接続を示しています)。会社のネットワーク上にある職場のHPでこれを実行しているマシン。外部WiFiボタンなどがないようです。「0」は真の値を取得していますか、それとも真のワイヤレスデバイスでこれをテストする必要がありますか?
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はテキストボックスに表示されています。