Russian Qt Forum

Qt => Вопросы новичков => Тема начата: ioann.sys от Декабрь 05, 2014, 22:51



Название: Приложение "Информация о системе"
Отправлено: ioann.sys от Декабрь 05, 2014, 22:51
Добрых времен суток, коллеги!
Требуется написать приложение, которое будет собирать информацию о системе, а именно:
   - название процессора и его загрузка;
   - количество оперативной и сколько занято\свободно;
   - информация о жёстких дисках (сколько физических, сколько логических, и их занятое\свободное пространство);
   - вызов утилиты ping и traceroute со скриншотами их результатов в виде bmb-изображений.

Подскажите пожалуйста, как средствами Qt, получить эту информацию? Как сделать PrintScreen окон ping и traceroute?
Думаю, сделать GUI приложение SysInfoLauncher, в котором можно чекбоксами отметить необходимые критерии для отчета (процессор, память, хдд) и задать путь для вывода информации и скриншотов в каталог.


Название: Re: Приложение "Информация о системе"
Отправлено: kambala от Декабрь 05, 2014, 23:07
через Qt никак, разве что вывод ping и traceroute можно получить


Название: Re: Приложение "Информация о системе"
Отправлено: ioann.sys от Декабрь 05, 2014, 23:15
через Qt никак, разве что вывод ping и traceroute можно получить

то есть, придётся обращаться к функциям WinAPI?


Название: Re: Приложение "Информация о системе"
Отправлено: kambala от Декабрь 06, 2014, 00:10
на винде — да


Название: Re: Приложение "Информация о системе"
Отправлено: Bepec от Декабрь 06, 2014, 09:47
или наплевать на winapi и использовать ping  и tracerout


Название: Re: Приложение "Информация о системе"
Отправлено: ioann.sys от Декабрь 06, 2014, 09:54
или наплевать на winapi и использовать ping  и tracerout

Ну да, собственно, так и задумывалось, запускать system("ping host"), потом находить это окно и делать скриншот.


Название: Re: Приложение "Информация о системе"
Отправлено: Kurles от Декабрь 06, 2014, 10:39
или наплевать на winapi и использовать ping  и tracerout

Ну да, собственно, так и задумывалось, запускать system("ping host"), потом находить это окно и делать скриншот.
Что за костыли. QProcess и его возможность захватывать как stdout, так и stderr запущенного через него приложение можно (нужно?) использовать.


Название: Re: Приложение "Информация о системе"
Отправлено: ioann.sys от Декабрь 07, 2014, 07:34
Подскажите пожалуйста...

Делаю выполнить (WinKey + R) --> cmd, в командной строке пишу tracert ya.ru. В консоль сыпятся сообщения от трассировщика на понятном русском языке. Стоит перенаправить вывод в файл (system("tracert ya.ru > yandex.log");) - то в таком случае, получаются иероглифы.


Название: Re: Приложение "Информация о системе"
Отправлено: lesav от Декабрь 07, 2014, 10:19
Консоль Windows: Все сообщения выводятся в кодировке cp866

Если вы пользуетесь "продвинутым" текстовым редактором notepad.exe, то вам поможет выбор шрифта terminal

В Qt я бы порекомендовал использовать QProcess, захватить stdout запускаемого приложения.
Затем пропустить его через конвертер и получить из него заветный UTF-8.

вот что вас натолкнет к правильным решениям
QProcess (http://qt-doc.ru/qproccess-processy-v-qt.html)
QTextStream::setCodec("CP866"); (http://www.cyberforum.ru/qt/thread798434.html)


Название: Re: Приложение "Информация о системе"
Отправлено: ioann.sys от Декабрь 07, 2014, 18:22
Спасибо за подсказку! Действительно, то, что надо
;)