0

私のプログラムでは、システムから WiFi 強度の値を取得しようとしています。必要な値を取得したら、それを Windows フォームのテキスト ボックスに表示しようとしています。これまでのところ、必要なテキスト ボックスに値を表示することはできません。どうすればこれを達成できるかについての洞察が必要です。生の rssi 値を取得する関数の呼び出しは、タイマー ループ内にあります。

*この Wi-Fi 強度のコードは、このサイトの寄稿者によって提供されたことに注意してください。それは私のものではありません。

 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;            
 }

 //**********************PROBLEM AREA BELOW************************************
 void timer_Tick(object sender, EventArgs e) //not working
 {
     GetSignalStrengthAsInt();
     wifi.Text = returnStrength;  // unclear how to get returnStrength in wifi box
     ...
 }

テキストボックスの名前は「wifi」です。私はある種のスコーピングの問題を抱えていると思います。

4

2 に答える 2

2

関数から値を読み取る必要があります。

void timer_Tick(object sender, EventArgs e) //not working 
{ 
    int returnStrength = GetSignalStrengthAsInt(); 
    wifi.Text = returnStrength.ToString();  // unclear how to get returnStrength in wifi box 

     //stuff 

}

于 2012-09-04T17:40:07.853 に答える
1

関数の戻り値を使用する必要があります。

wifi.Text = GetSignalStrengthAsInt().ToString();
于 2012-09-04T17:40:46.053 に答える