Qt получает локальный уникальный код (UUID)

При создании серийных номеров программного обеспечения часто необходимо найти способы различать разные машины, чтобы другие не могли купить код активации и использовать его повсюду.
Но если вы используете cpu_id, mac адрес и т.п., то столкнетесь с некоторыми проблемами (идентификация, модификация и т.п.).
Вот способ получить UUID компьютера, который может работать под Windows и Linux. Это связано с аппаратной частью системы, но не полностью.

QString _getComputerUUID()
{
    
    
    QProcess process;

#ifdef Q_OS_WIN
//    wmic csproduct get uuid

    QStringList mList;
    mList << "csproduct" << "get" << "uuid";
    process.start("wmic", mList);

    process.waitForFinished();
    QString ret = process.readAll();
    ret = ret.trimmed();

    QStringList dataList = ret.split("\r\n");

    if(dataList.length() != 2)
    {
    
    
        return "";
    }

    return dataList[1].trimmed();
#endif

#ifdef Q_OS_LINUX
    QStringList mList;
    mList << "-s" << "system-uuid";
    process.start("dmidecode", mList);

    process.waitForFinished();
    QString ret = process.readAll();
    ret = ret.trimmed();

    return ret;
#endif

    return "";
}

Guess you like

Origin blog.csdn.net/joyopirate/article/details/131663445