• 判断网络是否连接通


    编写下载程序的时候,需要经常判断网络是否连接通,通过下面的方法可以得到网络连接的状态。

    要用的函数:InternetGetConnectedState,这个win32 API在系统system32文件夹中winInet.dll中
    函数原形:BOOL InternetGetConnectedState(LPDWORD dwFlag,DWORD dwReserved);
    参数dwFlag返回当前网络状态,参数dwReserved依然是保留参数,设置为0即可。

    INTERNET_CONNECTION_MODEM = 采用调治解调器上网
    INTERNET_CONNECTION_LAN = 采用网卡上网;
    INTERNET_CONNECTION_PROXY = 采用代理上网;
    INTERNET_CONNECTION_MODEM_BUSY = MODEM被其他非INTERNET连接占用;

    public class InternetHelper
        {
            //使用DllImport需导入命名空间,InternetGetConnectedState返回的状态标识位的含义:
            private const int INTERNET_CONNECTION_MODEM = 1;
            private const int INTERNET_CONNECTION_LAN = 2;
            private const int INTERNET_CONNECTION_PROXY = 4;
            private const int INTERNET_CONNECTION_MODEM_BUSY = 8;
            [DllImport("winInet.dll ")]
            private static extern bool InternetGetConnectedState(ref  int dwFlag, int dwReserved);

            /// <summary>
            /// 判断是否有网络连接
            /// </summary>
            /// <returns>true 有, false 无</returns>
            public static bool GetInternetConnectState()
            {
                var dwFlag = 0;
                var netStatus = "";

                if (!InternetGetConnectedState(ref dwFlag, 0))
                {
                    return false;
                }

                if ((dwFlag & INTERNET_CONNECTION_MODEM) != 0) netStatus = "采用调治解调器上网";
                if ((dwFlag & INTERNET_CONNECTION_LAN) != 0) netStatus = "采用网卡上网";
                if ((dwFlag & INTERNET_CONNECTION_PROXY) != 0) netStatus = "采用代理上网";
                if ((dwFlag & INTERNET_CONNECTION_MODEM_BUSY) != 0) netStatus = "MODEM被其他非INTERNET连接占用";
                return true;
            }
        }

  • 相关阅读:
    pygrib的操作用法
    pythonista安装stash
    关于crontab运行python脚本不生效,但是手动执行却正常的问题
    windows下使用tensorboard注意事项
    请教tornadomeet大神Kinect+OpenNI学习笔记之8(Robert Walter手部提取代码的分析)(OpenNI2、NiTE2改编)
    CCV 调试 (一)
    数字图像处理第二次作业
    yangyangcv的OpenNI驱动玩隔空触摸源代码分析
    openFrameworks 学习笔记(一)
    关于error LNK2001: unresolved external symbol "__declspec(dllimport) public
  • 原文地址:https://www.cnblogs.com/guyichang/p/2721672.html
Copyright © 2020-2023  润新知