//撥號
#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("沒有連接網絡,請連接網絡"));
}
}
}