您的位置:首页 > 理论基础 > 计算机网络

Qt调用win32的dll判断是否连接上了网络

2010-08-06 16:23 495 查看
//拨号

#define INTERNET_CONNECTION_MODEM   1

//局域网

#define INTERNET_CONNECTION_LAN     2

//代理上网

#define INTERNET_CONNECTION_PROXY   4

//代理被占用

#define INTERNET_CONNECTION_MODEM_BUSY  8

//定义函数指针

typedef bool (*ConnectFun)(int* lpdwFlags,int  dwReserved);

//获得联网方式

void GetInternetConnectState()

{

QLibrary lib("Wininet.dll");

//如果正确加载了dll

if(lib.load())

{

bool   bOnline=false;//是否在线

int  flags;

//获取dll库中的函数InternetGetConnectedState函数地址`

ConnectFun  myConnectFun=(ConnectFun)lib.resolve("InternetGetConnectedState");

//判断是否连网

bOnline=myConnectFun(&flags,0);

if(bOnline)

    {

//在线:拨号上网

if ( flags & INTERNET_CONNECTION_MODEM )

{

QMessageBox::information(0,QObject::tr("网络连接提示"),

QObject::tr("已经连接上了网络 在线:拨号上网"));

} else  if(flags & INTERNET_CONNECTION_LAN)  //在线:通过局域网

{

QMessageBox::information(0,QObject::tr("网络连接提示"),

QObject::tr("已经连接上了网络 在线:通过局域网"));

}

else if(flags & INTERNET_CONNECTION_PROXY)

{

QMessageBox::information(0,QObject::tr("网络连接提示"),

QObject::tr("已经连接上了网络 在线:代理"));

}

}

else

    {

QMessageBox::information(0,QObject::tr("网络连接提示"),

QObject::tr("没有连接网络,请连接网络"));

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: