我的环境如下:
我用VS2003   C# ,建立了个智能设备应用程序。
客户端安装的是WINCE4.2,用无线网卡连接局域网。
Framework 的版本是 1.1请问这个环境下,如何判断我的客户端机子,是否已经连接到局域网。
应为是移动设备所以有可能走到AP发射点的范围外,引起不必要的错误。我也看了许多以前的帖子,但是都不行。
用 System.Net.Sockets,发布到客户端就报错,说没找到资源。
用 API也不行,大概是VS2003还不支持某些类。谢谢各位帮我看看有办法不。

解决方案 »

  1.   


    public static bool Ping(string remoteHost)
            {
                bool Flag = false;
                Process proc = new Process();
                try
                {
                    proc.StartInfo.FileName = "cmd.exe";
                    proc.StartInfo.UseShellExecute = false;
                    proc.StartInfo.RedirectStandardInput = true;
                    proc.StartInfo.RedirectStandardOutput = true;
                    proc.StartInfo.RedirectStandardError = true;
                    proc.StartInfo.CreateNoWindow = true;
                    proc.Start();
                    string dosLine = @"ping -n 1 " + remoteHost;
                    proc.StandardInput.WriteLine(dosLine);
                    proc.StandardInput.WriteLine("exit");
                    while (proc.HasExited == false)
                    {
                        proc.WaitForExit(500);
                    }
                    string pingResult = proc.StandardOutput.ReadToEnd();
                    if (pingResult.IndexOf("(0% loss)") != -1)
                    {
                        Flag = true;
                    }
                    proc.StandardOutput.Close();
                }
                catch (Exception ex)
                {
                }
                finally
                {
                    try
                    {
                        proc.Close();
                        proc.Dispose();
                    }
                    catch
                    {
                    }
                }
                return Flag;
            }
    我在C#里面是ping下,你参考下
      

  2.   

    用 API  InternetGetConnectedState, 位于 Wininet.dll 中返回 INTERNET_CONNECTION_LAN 表示局域网处于连线状态但不知道 在 wince 中还有没有用
      

  3.   

    to surlew
    Process这个类在CE开发里好像么有。to huwei001982 
    用API  InternetGetConnectedState不能返回网络通不通,只是返回用什么类型的连接。
    希望有别的方法。
      

  4.   

            [DllImport("wininet.dll")]
            public extern static bool InternetGetConnectedState(out int connectionDescription, int reservedValue);
            public static bool IsConnect()
            {
                int Desc;
                return WINAPI.InternetGetConnectedState(out Desc, 0);
            }
      

  5.   

    在局域网中使用UDP广播一下,收到的广播的就回复下!实现代码Google下就有很多
      

  6.   

    可能我的回答有些文不对题,sorry,删不了....