Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как узнать username
Форум на CrossPlatform.RU > Библиотеки > Другие библиотеки
mishaga
Хочу узнать имя пользователя, который запустил мою программу
и засунуть это в строку. Подскажите, как это сделать! =)
Litkevich Yuriy
в Qt такого нет, используй API целевой системы
Kagami
В Win
getenv("username")

В Lin
getenv("USER")

В маке я не знаю как
getenv() стандартная функция C/C++, должна работать везде
Гость_FenixTES_*
в реестре, в HKEY_CURRENT_USER, где точно, не помню, дальше считать QSettings'ом и забить в переменную
sendevent
както так (выдрано, возможно, некомпиллябильно, но суть должна быть понятна):
#if defined( Q_OS_WIN )
    #include <windows.h>
#elif defined( Q_OS_LINUX )
    #include <pwd.h>
    #include <sys/utsname.h>
#endif //--  Q_OS_WIN

...

/*static*/ void MyApp::getUserName()
{
    if( m_qstrUserName.isEmpty() )
    {
#ifdef Q_OS_WIN
        QT_WA(
        {
            wchar_t buffer[256];
            DWORD bufferSize = sizeof( buffer ) / sizeof( wchar_t ) - 1;
            GetUserNameW( buffer, &bufferSize );
            m_qstrUserName = QString::fromUtf16( ( ushort* )buffer );
        },
        {
            char buffer[256];
            DWORD bufferSize = sizeof( buffer ) / sizeof( char ) - 1;
            GetUserNameA( buffer, &bufferSize );
            m_qstrUserName = QString::fromLocal8Bit( buffer );
        }
         ); //-- QT_WA
#else
        struct passwd* pwd = getpwuid( getuid() );
        if( pwd )
        {
            m_qstrUserName = QString( pwd->pw_name );
        }
#endif //-- Q_OS_WIN
    }

    return m_qstrUserName;
}
про мак тоже хотелось бы узнать.

хе-хе:
Цитата(sendevent @ 12.11.2009, 22:59) *
/*static*/ void MyApp::getUserName()
{
...
return m_qstrUserName;
}
я так понимаю, редактировать смогу после N-нго количества сообщений? (ога, не читал правила)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.