crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Как узнать username, Хочу узнать имя пользователя, который запустил мою программу
mishaga
  опции профиля:
сообщение 12.11.2009, 18:01
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 15.2.2009
Пользователь №: 552

Спасибо сказали: 0 раз(а)




Репутация:   0  


Хочу узнать имя пользователя, который запустил мою программу
и засунуть это в строку. Подскажите, как это сделать! =)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 12.11.2009, 18:10
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


в Qt такого нет, используй API целевой системы
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 12.11.2009, 18:56
Сообщение #3


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


В Win
getenv("username")

В Lin
getenv("USER")

В маке я не знаю как
getenv() стандартная функция C/C++, должна работать везде

Сообщение отредактировал Kagami - 12.11.2009, 18:58
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_FenixTES_*_*
сообщение 12.11.2009, 19:55
Сообщение #4





Гости








    


в реестре, в HKEY_CURRENT_USER, где точно, не помню, дальше считать QSettings'ом и забить в переменную
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sendevent
  опции профиля:
сообщение 12.11.2009, 22:08
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 4.6.2009
Пользователь №: 802

Спасибо сказали: 0 раз(а)




Репутация:   0  


както так (выдрано, возможно, некомпиллябильно, но суть должна быть понятна):
#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-нго количества сообщений? (ога, не читал правила)
Причина редактирования: используй тэг code
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.4.2024, 1:59