我目前正在开发针对HP IPAQ 210的应用程序。该应用程序的一部分要求启用/启用WLAN无线电以连接到预配置的接入点。我目前正在使用IPAQ SDK(通过P/Invoke)启用WLAN收音机,但是我很难可靠地确定收音机何时建立了与首选访问点的连接。目前,我正在监视Microsoft.windowsmobile.status.systate.wifistateconnected属性,但我希望在建立连接时订阅要通知的事件。

我在OpenNETCF库中有点环顾四周,并且在2.3中似乎有很有希望的事情,但是我们暂时停留在2.2上。

是否有可靠的方法来确定连接状态?

有帮助吗?

解决方案

这很丑陋,也不是事件,但是如果其他所有失败,您可以尝试通过阅读其注册表密钥来检查WiFi硬件状态:

int key = (int)Registry.GetValue("HKEY_LOCAL_MACHINE\\System\\State\\Hardware", "WiFi", -1);

其他提示

因此,如果其他任何人都在此发生,我找到了上面描述的注册表密钥方法,但我需要一个更可靠的方法。我已经移动到使用OpenNETCF 2.2 NetworkInformation库来监视无线齐射框架的CurrentIpAddress属性。我仍在使用IPAQUTILS来管理WLAN无线电电源(我发现缺少OpenNETCF 2.2无线电控件,并且该设备只有一个WiFi网络输入),但是以下是我监视界面IP地址的方式:

NetworkInterface[] netIntfs = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface ni in netIntfs)
{
    if (ni is WirelessZeroConfigNetworkInterface)
    {
       wzcni = (WirelessZeroConfigNetworkInterface)ni;
    }
}

while (wzcni.CurrentIpAddress.ToString() == "0.0.0.0" && tryCount < 10)
{
    wzcni.Refresh();
    System.Threading.Thread.Sleep(3000);
    tryCount++;
}
System.Windows.Forms.Button Btn = new System.Windows.Forms.Button();
if (flag == true)
{
    for (int i = 0; i < node; i++)
    {
        Btn = new Button();
        Btn.Height = 25;
        Btn.Width =30;
        Btn.ForeColor = Color.Blue;
        Btn.BackColor = Color.Brown;                 
        Btn.AutoSize = false;
        x = rd.Next(130, 800);
        y = rd.Next(130, 500);
        Btn.Location = new Point(x, y);
        Console.WriteLine(x + "," + y);
        Btn.Text = "U" + i.ToString();
        Btn.Name = "U" + i.ToString();
        m_streamWriter.WriteLine("{0} {1} {2}",
                                 Btn.Name.ToString(),
                                 Btn.Location.X.ToString(),
                                 Btn.Location.Y.ToString());
        Btn.Click += new System.EventHandler(this.Btn_Click);
        this.Controls.Add(Btn);                    
    }
    flag = false;
    m_streamWriter.Dispose();
    startConvert();
    get_combo1();                          
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top