Russian Qt Forum

Компиляторы и платформы => Windows => Тема начата: G-virus от Апрель 06, 2011, 21:43



Название: Получить список сетевых адаптеров
Отправлено: G-virus от Апрель 06, 2011, 21:43
Всем привет. Подскажите пожалуйста, как можно получить список имен сетевых устройств в винде.
Пробовал так:
Код
C++ (Qt)
QProcess proc;
proc.start("ipconfig");
proc.waitForReadyRead();
QString list = QString(proc.readAll());
 

Не получается, весь вывод айпиконфига не успевает записаться в QString. Как можно "успеть" поместить весь вывод в QString или QStringList. А еще лучше, можно ли сделать так, чтобы в QString\QStringList откуда-нибудь достать список имен сетевых устройств, чтобы было как-то так:

Подключение по локальной сети
Подключение по локальной сети 2
Hamachi

и т.п.


Название: Re: Получить список сетевых адаптеров
Отправлено: Пантер от Апрель 06, 2011, 22:18
Создавай QProcess в куче и коннектся на его сигнал void QProcess::readyReadStandardOutput () [signal]


Название: Re: Получить список сетевых адаптеров
Отправлено: G-virus от Апрель 06, 2011, 22:46
Создавай QProcess в куче и коннектся на его сигнал void QProcess::readyReadStandardOutput () [signal]

То есть, по сути, нужно сделать что-то типо такого?

Код
C++ (Qt)
 
void show()
{
 QString str = proc.readAll();
 qDebug(str.toAscii());
}
 
int main()
{
 QProcess *proc = new QProcess;
 connect(proc, SIGNAL(readyReadStandardOutput()), this, SLOT(show()));
 proc.start("ipconfig");
delete proc;
return 0;
}
 


Название: Re: Получить список сетевых адаптеров
Отправлено: Пантер от Апрель 07, 2011, 07:19
Нет. У тебя же оно не успеет отработать. Можно закостылить:
Код
C++ (Qt)
int main()
{
 QProcess proc;
 proc.start("ipconfig");
 while (!proc.waitForReadyRead ()) {}
 //Read
return 0;
}
 


Название: Re: Получить список сетевых адаптеров
Отправлено: G-virus от Апрель 07, 2011, 13:02
Нет. У тебя же оно не успеет отработать. Можно закостылить:

Да, кажись сработало. Только в условии цикла отрицание убрал. Спасибо =)


Название: Re: Получить список сетевых адаптеров
Отправлено: Alex Custov от Апрель 16, 2011, 04:29
Цитировать
QList<QNetworkInterface> QNetworkInterface::allInterfaces ()   [static]


Название: Re: Получить список сетевых адаптеров
Отправлено: Waryable от Апрель 22, 2011, 12:28
Цитировать
QList<QNetworkInterface> QNetworkInterface::allInterfaces ()   [static]
Блин как просто. Извиняюсь за оффтоп, но у меня сразу такая ассоциация: VB::dai_mne_pozhalusta_all_LAN();