日期:2013-04-22  浏览次数:20414 次

Check Your Internet Connection With C#
By Simohamed Attahri

用C#检测你的网络连接



How to check if your computer is connected to the internet with C#. It's much more easier that other tutorials I've seen in other sites. In deed, we're going to use a simple API function InternetGetConnectedState, to return a boolean variable.

怎么用C#来检测你的计算机是否连接到互联网呢?这可能是我见过最简单的教程了。其实我们就是使用一个简单的InternetGetConnectedState API函数,结果是返回一个boolean类型的变量。

This function takes two arguments :

这个函数有两个参数:

The first one is an integer used with out keyword, that means that after calling the function, the variable will contain an interger that describes the connection state ( use of a modem, use of a proxy, offline mode...). Note that you must refer to www.msdn.com for more information about that.
The second one is a reserved variable that must be set to 0.

第一个是带有out关键字的整型数,也就是说在调用函数后,变量应该包含一个描述连接状态(使用调制解调器、使用代理、离线模式)的整型数。你可以到www.msdn.com获取更多相关信息。

第二个参数设置为零的保留变量。

In this tutorial, we'll create a class with a static function that returns true if connected and false if not, using our API function in private state.

在这篇教程中,我们建立一个有着静态函数的类,在私有域使用API函数。如果连通则返回true否则返回false。

Check this out :

using System ;
using System.Runtime ;
using System.Runtime.InteropServices ;

public class InternetCS
{

//Creating the extern function...
[DllImport("wininet.dll")]
private extern static bool InternetGetConnectedState( int out Description, int ReservedValue ) ;

//Creating a function that uses the API function...
public static bool IsConnectedToInternet( )
{

int Desc ;
return InternetGetConnectedState( out Desc, 0 ) ;

}

}