Qt調用win32的dll判斷是否連接上了網絡

//撥號

#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("沒有連接網絡,請連接網絡"));
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章