判断网络是否连接

win32   API 函数的做法 :  

要用的函数: InternetGetConnectedState   

函数原形:

BOOL   InternetGetConnectedState(LPDWORD   lpdwFlags,DWORD   dwReserved);   

参数 lpdwFlags 返回当前网络状态 , 参数 dwReserved 依然是保留参数,设置为 0 即可。    

INTERNET_CONNECTION_MODEM    通过调治解调器连接网络    

INTERNET_CONNECTION_LAN    通过局域网连接网络    

这个函数可以:    

1.      判断网络连接是通过网卡还是通过调治解调器   

2.      是否通过代理上网

3.    判断连接是 On   Line 还是 Off   Line   

4.    判断是否安装 拨号网络服务 ”   

5.    判断调治解调器是否正在使用    

这个 win32   API 在系统 system32 文件夹中 winInet.dll  

 

定义判断网络连接的类

        private const int INTERNET_CONNECTION_MODEM = 1; // 通过调治解调器连接网络

        private const int INTERNET_CONNECTION_LAN = 2; // 通过局域网连接网络 

 

        //MSDN 中对DllImportAttribute 的解释是这样的:可将该属性应用于方法。

        //DllImportAttribute 属性提供对从非托管 DLL 导出的函数进行调用所必需的信息。作为最低要求,必须提供包含入口点的 DLL 的名称。

        [DllImport ("winInet.dll" )]

         private static extern bool InternetGetConnectedState(

        ref    int dwFlag,

        int dwReserved

        );

 

判断网络的函数实现

 

        // 判断网络连接

        public static bool ConnectState(ref string param_ReturnValue)

        {

            System.Int32 dwFlag = new int ();

            if (!InternetGetConnectedState(ref    dwFlag, 0))

            {

                param_ReturnValue = " 网络未连接" ;

                return false ;

            }

            else if ((dwFlag & INTERNET_CONNECTION_MODEM) != 0)

             {

                param_ReturnValue = " 采用调治解调器上网" ;

                return true ;

            }

            else if ((dwFlag & INTERNET_CONNECTION_LAN) != 0)

            {

                param_ReturnValue = " 采用网卡上网" ;

                return true ;

             }

            else

            {

                return true ;

            }

 

        }

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值