Qt5獲取當前用戶名

 Qt版本 : Qt5.12.8

#include <QDir>
#include <QStandardPaths>
#include <QProcess>

QString getCurrentUserName()
{
    QString userName;

    if (userName.isEmpty()) {
        QStringList envList = QProcess::systemEnvironment();
        for (const QString& env : envList) {
            if (env.startsWith("USERNAME")) {
                QStringList strList = env.split('=');
                if (strList.size() > 2) {
                    userName = strList[1];
                }
            }
        }
    }

    if (!userName.isEmpty()) {
        return userName;
    }

#if defined(Q_OS_WIN)
    userName = QStandardPaths::displayName(QStandardPaths::HomeLocation);
#elif defined(Q_OS_LINUX)
    QProcess process;
    process.start("whoami", QStringList());
    process.waitForFinished();
    userName = QString::fromLocal8Bit(process.readAllStandardOutput()).trimmed();
#endif

    return userName.isEmpty() ? QString("User") : userName;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章