zoukankan      html  css  js  c++  java
  • Qt调用系统DLL,判断网络连接状态

    *: Win32 网络连接 dll 文件名叫:wininet.dll,位置在 C:WINDOWSsystem32 目录下,将 其拷贝到项目工程下。

    #include <QLibrary>
    #include <QLabel>
    
    #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) ;  // 定义函数指针
    QLabel *label = new QLabel(this);
    label->setGeometry(QRect(50, 50, 200, 25));
    
    QLibrary myLib("wininet.dll");
    if(myLib.load())
    {
        bool bOnline = false;  // 是否在线
        int flags;
    
        ConnectFun myConnect = (ConnectFun)myLib.resolve("InternetGetConnectedState");
        bOnline = myConnect(&flags, 0);
        // 判断是否联网
        if(bOnline)
        {
            if(flags &INTERNET_CONNECTION_MODEM)
            {
                label->setText("已连接:拨号上网");
            }
            else if(flags &INTERNET_CONNECTION_LAN)
            {
                label->setText("已连接:局域网");
            }
            else if(flags &INTERNET_CONNECTION_PROXY)
            {
                label->setText("已连接:代理上网");
            }
            else
            {
                label->setText("连接失败");
            }
        }
        else
        {
            label->setText("没有网络连接");
        }
    }
    else
    {
        label->setText("DLL加载失败");
    }
  • 相关阅读:
    模拟乒乓球双打和单打比赛
    关于zip内置函数的应用及在 Python 2 和 3 的不同之处
    计算文本平均列数
    四则运算
    Python跳一跳小游戏
    数据库
    类和正则表达
    带进度条的圆周率计算
    球队预测
    自己的第一个网页
  • 原文地址:https://www.cnblogs.com/shiyixirui/p/15164606.html
Copyright © 2011-2022 走看看