具有编译错误的WiFi信号强度功能

时间:2012-08-15 13:57:50

标签: c# visual-studio-2008 compiler-errors signal-strength

我正在使用函数返回此处给出的当前WiFi信号强度值:http://www.dotnet247.com/247reference/msgs/42/211278.aspx

当我在Visual Studio 2008中运行代码时,出现编译错误:

无法找到名称空间“ManagementObjectSearcher”的类型。

我正在使用'使用System.Manangement'

我的目标是获取信号强度并将其插入到Windows窗体的文本框中,所以一旦我使用下面的函数获取值,我只需将其弹出到框中供用户查看。

我为什么会收到这些错误?

代码:

 public static void signalStrentgh()
        {
           ManagementObjectSearcher searcher = new  
           ManagementObjectSearcher(@"root\WMI", "select 
           Ndis80211ReceivedSignalStrength from MSNdis_80211_ReceivedSignalStrength 
           where active=true");

            foreach (ManagementObject mo in searcher.Get())
            {
                Console.WriteLine("{0}", mo["Ndis80211ReceivedSignalStrength"]);
            }
        }

注意*下面发布的是旧的,不正确的代码版本,用C ++完成。这是参考评论和帮助。

int GetSignalStrength()
{
  ManagementObjectSearcher *searcher = new ManagementObjectSearcher(
  "root\\WMI",
  "select Ndis80211ReceivedSignalStrength from
  MSNdis_80211_ReceivedSignalStrength where active=true");

  ManagementObjectCollection *queryCollection = searcher->Get();

  ManagementObjectCollection::ManagementObjectEnumer ator* queryEnum =
  queryCollection->GetEnumerator();
  while (queryEnum->MoveNext());

  ManagementBaseObject* object = queryEnum->get_Current();
  Object* signalStrength =
  object->GetPropertyValue(L"Ndis80211ReceivedSignalStrengt h");
  return (Convert::ToInt32(signalStrength->ToString()));
}

2 个答案:

答案 0 :(得分:1)

我为C#找到的东西就像在MSDN上一样:http://social.msdn.microsoft.com/forums/en-US/netfxnetcom/thread/34a66ee5-34f8-473d-b6f2-830a14e2300b/

仔细阅读。您似乎正在使用或已经改编了C ++ CLR代码。你的代码似乎差不多正确。

答案 1 :(得分:1)

要回答您的问题,您不能将object用作变量名称。 object是关键字。尝试将变量重命名为objo,看看是否有效。

为了进一步参考,我认为你正在使用一些非常古老的语法技巧来编译c#代码。而且我认为这会让很多人试图确定这是否真的是c#。

指针语法可能不是必需的。 ManagementObjectSearcher是System.Management命名空间的一部分,因此在没有不安全指针语法的情况下可以安全使用。

另外,为什么使用namespace alias qualifier::)?直接使用点运算符应该是安全的(ManagementObjectCollection.ManagementObjectEnumerator)。实际上,在这里使用点运算符而不是指针语法应该是安全的。