1

Codeplex のマネージド WiFi サイトから提供された WLAN API を C# プロジェクト (Windows フォーム アプリケーション) に組み込みました。API には、マシンの現在の WiFi プロファイルのさまざまな側面を取得するためのさまざまな関数が用意されています。以下の関数で指定された RSSI 強度を取得することにのみ関心があります。次に、その値を取得して、フォームのテキスト ボックスに貼り付けます。

(ビジュアルスタジオ 2008)

WlanAPI.cs ファイルには、私が興味を持っている関数が次のように存在します。

 namespace NativeWifi
{
   public class WlanClient
{
    /// <summary>
    /// Represents a Wifi network interface.
    /// </summary>
    public class WlanInterface
    {

                   /// <summary>
        /// Gets the RSSI.
        /// </summary>
        /// <value>The RSSI.</value>
        /// <remarks>Not supported on Windows XP SP2.</remarks>
        public int RSSI
        {
            get
            {
                return GetInterfaceInt(Wlan.WlanIntfOpcode.RSSI);
            }
        }

myApp.cs には、現在の RSSI を表示する「wifi」という名前のテキスト ボックスがあります。myApp.cs ヘッダーに 'using NativeWifi' を含めましたが、WlanAPI.csproj の RSSI 関数からデータを取得できないようです。プロジェクトは問題なくビルドおよびコンパイルされます。RSSI値を取得することに夢中です。

myApp.cs には、次のようなステートメントがあります。

wifi.Text = (GetInterfaceInt(Wlan.WlanIntfOpcode.RSSI)); //app form txt_box=RSSI value

これが間違っていることはわかっていますが、私がやろうとしていることを示しています。

何か案は?

ありがとう。

4

1 に答える 1

2

直面している問題を解決できるはずです。

  1. WlanAPI.dll または WlanAPI プロジェクトへの参照の追加 (ソリューションに追加する場合)
  2. 次のようなコードを使用します。

    Using NativeWifi;
    
    Class MyAPP : Form
    {
    
      public void PrintRSSI()
      {
    
          WlanClient client = new WlanClient();
          var interfaces = client.Interfaces;
    
          //Now chose an interface out of all the available interfaces. Usually there would be zero or 1 interfaces available
          if(interfaces.Length > 0)
          {
              //Select first available interface. A more complicated logic can present the list of available interfaces to the user and and then display RSSI for the selected interface
              wifi.Text = interfaces[0].RSSI.ToString();
          }
       }
    
     //Other code for the class
    }
    
于 2012-08-17T12:21:31.147 に答える