Russian Qt Forum

Qt => Общие вопросы => Тема начата: mygorod от Сентябрь 14, 2008, 14:09



Название: Как вытащить информацию о железе и ОС
Отправлено: mygorod от Сентябрь 14, 2008, 14:09
Подскажите пожалуйста, как вытащить информацию о железе и ОС?
Примерчики приветствуются.


Название: Re: Как вытащить информацию о железе и ОС
Отправлено: VAP от Сентябрь 14, 2008, 15:02
Информация о системе - класс QSysInfo в помощь(это есть  в Ассистенте).


Название: Re: Как вытащить информацию о железе и ОС
Отправлено: sendevent от Сентябрь 14, 2008, 17:53
Выдирал из ассиста (4.4.0b):

Код:
qDebug( "locallhost: %s", qPrintable( QHostInfo::localHostName() ) ); //-- localhost name
QList<QHostAddress> addressList = QNetworkInterface::allAddresses();
foreach( QHostAddress address, addressList )
    qDebug( "yet another address: %s", qPrintable( address.toString() ) );//-- eth & lo addresses

QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces();
foreach( QNetworkInterface interface, interfaces )
    qDebug( "yet another interface: %s", qPrintable( interface.hardwareAddress() );//-- mac

for( int iCount = 0; iCount<QNetworkInterface::allInterfaces().count(); iCount++ )
{
    QNetworkInterface current = QNetworkInterface::interfaceFromIndex( iCount );
    if( current.isValid() )
    {
        QList<QNetworkAddressEntry> adresses = current.addressEntries();
        for( int addrId = 0; addrId < adresses.count() ; addrId++ )
            qDebug( "ip: %s", qPrintable( adresses.at( addrId ).ip().toString() ) );
    }
}

А вот как бы узнать название текущего пользователя? Наверно, можно из QSettings, но пока не нашел.


Название: Re: Как вытащить информацию о железе и ОС
Отправлено: ритт от Сентябрь 14, 2008, 20:17
это уже к кутэ не относится.
я добываю имя юзверя так:
Код:
	static QString login;
if(login.isEmpty())
{
#ifdef Q_OS_WIN
QT_WA({
wchar_t buffer[256];
DWORD bufferSize = sizeof(buffer) / sizeof(wchar_t) - 1;
GetUserNameW(buffer, &bufferSize);
login = QString::fromUtf16((ushort*)buffer);
},
{
char buffer[256];
DWORD bufferSize = sizeof(buffer) / sizeof(char) - 1;
GetUserNameA(buffer, &bufferSize);
login = QString::fromLocal8Bit(buffer);
});
#else
struct passwd* pwd = getpwuid(getuid());
if(pwd)
login = QString(pwd->pw_name);
#endif
}

поправьте меня, если есть более простой и гибкий способ...


Название: Re: Как вытащить информацию о железе и ОС
Отправлено: NicK от Март 02, 2011, 09:17
А так?
Код
C++ (Qt)
QString getUserName()
{
       return (qgetenv("USERNAME"));
}
 


Название: Re: Как вытащить информацию о железе и ОС
Отправлено: alexman от Март 02, 2011, 09:26
Вроде пашет :) Под виндой точно!


Название: Re: Как вытащить информацию о железе и ОС
Отправлено: voral от Март 02, 2011, 14:32
А тип проца/разрядность/частоту и объем диска полный/доступный, нет ни у кого кроссплатфоменных  наработок?


Название: Re: Как вытащить информацию о железе и ОС
Отправлено: Alex Custov от Март 02, 2011, 22:55
поправьте меня, если есть более простой и гибкий способ...

в UNIX это $USER, в винде $USERNAME

P.S. ой, некропост :D


Название: Re: Как вытащить информацию о железе и ОС
Отправлено: Mish_ka от Март 13, 2011, 21:26
Никто и ничего незнает по этому поводу?

А тип проца/разрядность/частоту и объем диска полный/доступный, нет ни у кого кроссплатфоменных  наработок?

Нашёл что нибудь?

Всё перерыл... ни чего не нашёл... плохо смотрел, подскажите пожалуйста...


Название: Re: Как вытащить информацию о железе и ОС
Отправлено: voral от Март 14, 2011, 16:12
А тип проца/разрядность/частоту и объем диска полный/доступный, нет ни у кого кроссплатфоменных  наработок?
Нашёл что нибудь?
Всё перерыл... ни чего не нашёл... плохо смотрел, подскажите пожалуйста...
Это у меня неосновная сейчас задача. Пока только видел (воде здесь) код для определения полного и свободного места на диске. Но там не хватает определения под мак.