Russian Qt Forum
Ноябрь 23, 2024, 06:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3 4   Вниз
  Печать  
Автор Тема: Как получить данные о процессоре и диске?  (Прочитано 39443 раз)
Alchazar
Гость
« : Ноябрь 06, 2009, 17:22 »

Два дня пытаюсь нагуглить как в QT узнать такие данные о компе (Windows):
1 Модель процессора
2 Кол. во ядер
3 Загрузка процессора
4 Температура процессора
5 Температура дисков
6 Количество и модели дисков
7 SMART инфо о дисках

Ничего стоящего найти не удалось, может подскажете в какую сторону копать?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Ноябрь 06, 2009, 18:22 »

ни как, используй API целевой системы
Записан

Юра.
Alchazar
Гость
« Ответ #2 : Ноябрь 09, 2009, 10:06 »

ни как, используй API целевой системы
А можно по подорбнее?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #3 : Ноябрь 09, 2009, 10:15 »

Вот в гугле для винды например (первая попавшаяся ссылка):

http://www.java2s.com/Code/VBA-Excel-Access-Word/Windows-API/CPU-Processor.htm

а вообще, см. MSDN

Для линуха и т.п. - много вариантов как получить то, что нужно. Одним из вариантов является парсинг в /proc
« Последнее редактирование: Ноябрь 09, 2009, 10:17 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #4 : Ноябрь 09, 2009, 11:00 »

Для винды юзай WMI а для линуха исходники dmidecoder если не ошибаюсь, я так информацию о железе получал))))
Записан
Alchazar
Гость
« Ответ #5 : Ноябрь 09, 2009, 11:17 »

Для начала надо с виндой разобраться, потом для линукса буду портировать. Вот только с QT я совсем недавно познакомился, так что мне ещё много предстоит узнать.
Записан
Alchazar
Гость
« Ответ #6 : Январь 25, 2010, 16:08 »

Подниму тему. Вроде получилось придумать как найти инфо о параметрах компьютора.
Использовал WMI чтобы найти Модель процессора, Кол. во ядер, и т.п.
Всё это сделал в VS, собираюсь собрать dll и затем использовать его в своей программе. Правда не все диски определяются (только 2 из трёх, иногда видит только один диск), но с этим буду пожже разбираться.

Вот только WMI не даёт никакой информации о температурах. А мне надо ещё узнать температуру дисков и процессора/процессоров.
В гугле пишут, что windows такой информации не предоставляет, и её надо самому читать с датчиков.
Погуглив ещё немного, я нашёл, что температуру можно узнать из ACPI или SMBIOS. Нашёл даже описание 
ACPI http://www.acpi.info/DOWNLOADS/ACPIspec30b.pdf (стр. 375)
и SMBIOS http://www.dmtf.org/standards/published_documents/DSP0134_2.6.1.pdf (стр. 67)

Но  к сожалению у меня нехватает опыта и знаний в таких делах (да и прогаммист я не очень, ещё только учюсь).
Мне нужна помощь. Сам я не очень понимаю как пользоваться той информацией, что я нашёл.
Буду очень признателен, за любую помощь.
Заранее Спасибо.
Записан
niXman
Гость
« Ответ #7 : Январь 25, 2010, 16:29 »

даташиты это хорошо. но что-то путевое по ним скодить - не просто.
я когда-то давно, писал то о чем ты говоришь, для вендавз. но мне нужно было читать два датчика температуры и скорость вращения двух кулеров. получилось. ввод-вывод с чипом написал при помощи http://www.internals.com/utilities/winio.zip
алгоритм взаимодействия с чипом я так до конца и не понял(что-то помоему не правильно считало), потому подглядел код и исходников линухового ядра. т.е. тот код использовать в первоначальном виде не получится, а вот для понимания он супер, даже комменты есть.
так что дерзай.

зы
определи номер чипа точно. чтоб обидно потом не было)
Записан
Alchazar
Гость
« Ответ #8 : Январь 25, 2010, 17:52 »

Спасибо огромное за помощь)
Разбираюсь теперь WinIo, если я правильно понял,
Код:
GetPortVal(0x378, &dwPortVal, 4);

читает данные, то есть тут (0x378) надо указать адрес с которого я хочу получить информацию. Или я не туда смотрю?

А как узнать по какому адресу находится информация которая мне необходима?
Я пытаюсь найти адрес в SMBIOS спецификации, или я вообще не в ту степь забрёл?
Записан
niXman
Гость
« Ответ #9 : Январь 25, 2010, 18:46 »

Цитировать
то есть тут (0x378) надо указать адрес с которого я хочу получить информацию
верно.

Цитировать
А как узнать по какому адресу находится информация которая мне необходима?
в даташитах написано. при том, там наверняка мультиплексированный ввод/вывод как и в большинстве современных микроконтроллеров.

Цитировать
Я пытаюсь найти адрес в SMBIOS спецификации, или я вообще не в ту степь забрёл?
вскрываешь системник, ищешь микруху с ногами по ребрам, читаешь ее номер, забиваешь в гугл, ищешь даташит.
а лучше скажи модель материнки.
Записан
Alchazar
Гость
« Ответ #10 : Январь 26, 2010, 09:35 »

То есть, если я хочу чтобы программа работала хотя бы на 80-90% комп. мне надо делать поддержку кучи различных чипов? Неужели нету одного стандарта?

Материнка у меня Intel d865glc.

Как понять "мультиплексированный ввод/вывод"?
Записан
niXman
Гость
« Ответ #11 : Январь 26, 2010, 12:08 »

Цитировать
То есть, если я хочу чтобы программа работала хотя бы на 80-90% комп. мне надо делать поддержку кучи различных чипов?
именно.

Цитировать
Неужели нету одного стандарта?
нет.

Цитировать
Как понять "мультиплексированный ввод/вывод"?
т.е. для того чтоб чип тебе отдал какое-то значение, с ним нужно "пообщаться", сообщив ему что ты хочешь. для другого значения так же, только сообщаешь иначе.
как я и говорил, не тривиально сие.
Записан
niXman
Гость
« Ответ #12 : Январь 26, 2010, 12:17 »

не нашел ни одной нормальной картинки материнки, чтоб можно было прочитать номер чипа.
Записан
Alchazar
Гость
« Ответ #13 : Январь 26, 2010, 12:45 »

Он большой или маленький должен быть? В каком углу (возле чего) его искать?
Записан
niXman
Гость
« Ответ #14 : Январь 26, 2010, 12:50 »

сфоткай лучше материнку, нижнюю часть.
Записан
Страниц: [1] 2 3 4   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.056 секунд. Запросов: 23.