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加载失败");
    }
  • 相关阅读:
    [SDOI2006] 保安站岗
    [NOIP2003] 传染病控制
    [USACO13OPEN] 照片Photo
    [HNOI/AHOI2018] 道路
    [TJOI2007] 线段
    [HAOI2009] 逆序对数列
    codeforces|CF1054D Changing Array
    hihoCoder 1785
    luogu 1712
    luogu 3248
  • 原文地址:https://www.cnblogs.com/shiyixirui/p/15164606.html
Copyright © 2011-2022 走看看