0
点赞
收藏
分享

微信扫一扫

QT获得Windows的COMPUTER_NAME_FORMAT里面的信息,例如AD域

#include <sysinfoapi.h>
#include <winnls.h>
#include <QDebug>

void GET_COMPUTER_NAME_FORMAT()
{
    QStringList list;
    TCHAR buf[256];
    unsigned long size = sizeof(buf);
    QString message[8] = {
        "NetBIOS",
        "DnsHostname",
        "DnsDomain",
        "DnsFullyQualified",
        "PhysicalNetBIOS",
        "PhysicalDnsHostname",
        "PhysicalDnsDomain",
        "PhysicalDnsFullyQualified"
    };

    for (int i = 0; i < ComputerNameMax; ++i)
    {
        if (GetComputerNameEx((COMPUTER_NAME_FORMAT)i, buf, &size))
        {
            int i = WideCharToMultiByte(CP_ACP, 0, buf, -1, nullptr, 0, nullptr, nullptr);
            char* ch = new char[i * sizeof(char)];
            WideCharToMultiByte(CP_ACP, 0, buf, -1, ch, i, nullptr, nullptr);
            qInfo() << message[i] << "\t" + QString::fromStdString(string(ch));
        }
        size = sizeof(buf);
        memset(buf, 0, size);
    }
}
举报

相关推荐

0 条评论