日期:2014-05-18  浏览次数:21217 次

C#获取无线网络信号强度
大虾们:
  我希望用的是C#写的,而且不要用到第三方dll,这样以后有问题,也看得懂

------解决方案--------------------
探讨

那有没有用wlanApi.dll这个的C#获取信号强度的

------解决方案--------------------
研究下这个源码,里面有一个"ConnectionClass.dll"类库,利用这个类库,可以方便的对无线网络进行操作.包括wifi信号强度,质量..
http://www.codeproject.com/KB/gadgets/SignalStrenghth/SignalStrengthIndicator.zip

C# code
public static uint GetSignalQuality(Guid gg)
{
    UInt32 dwSize = 0;
    IntPtr ppData = IntPtr.Zero;
    IntPtr ppChannel = IntPtr.Zero;
    WLAN_OPCODE_VALUE_TYPE pOpcodeValueType;

    if (WlanQueryInterface(m_pClientHandle, ref gg, 
        WLAN_INTF_OPCODE.wlan_intf_opcode_current_connection, 
        IntPtr.Zero, out dwSize, out ppData, 
        out pOpcodeValueType) != ERROR_SUCCESS)
    {
        m_errorMessage = "Failed WlanQueryInterface() - " + 
                         "Current  Connection Attributes";
        return 0;
    }

    if (ppData != IntPtr.Zero)
    {
        WLAN_CONNECTION_ATTRIBUTES connectionAttributes = 
             new WLAN_CONNECTION_ATTRIBUTES(ppData);
        return connectionAttributes.wlanAssociationAttributes.wlanSignalQuality;

    }
    return 0;
}

------解决方案--------------------
探讨
大虾们:
我希望用的是C#写的,而且不要用到第三方dll,这样以后有问题,也看得懂

------解决方案--------------------
探讨
大虾们:
我希望用的是C#写的,而且不要用到第三方dll,这样以后有问题,也看得懂

------解决方案--------------------
这个得和驱动打交道,不可能单独完成
------解决方案--------------------
用第三方吧。
------解决方案--------------------
同意9楼的
------解决方案--------------------
7楼正解
------解决方案--------------------
探讨

引用:
大虾们:
我希望用的是C#写的,而且不要用到第三方dll,这样以后有问题,也看得懂
这怎么可能不用第三方,C# 没这么处理底层的能力,只能打点家务,外头的活得C、C++

------解决方案--------------------
这个只能用第三方的DLL了!