Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
HWInfo 1.1 Набор отдельных функций для получения некоторой информации о системном железе.
Накопители (hw_hdd): - буква, тип и метка диска - файловая система - кол-во занятого и свободного места
Видеокарта (hw_gfx): - имя - кол-во видеопамяти - описание - дата и версия драйвера устройства - тип видеопроцессора
Системная память (hw_mem): - общее и свободное кол-во физической памяти - общее и свободное кол-во виртуальной памяти - общий видимый обьем системной памяти
Процессор (hw_cpu): - имя - производитель - описание - текущая и максимальная частота - частота системной шины (External bus clock) - тип сокета - идентификатор процессора
Сетевой адаптер (hw_net): - имя адаптера - производитель - имя соединения - статус соединения - тип адаптера - mас-адрес - время посл. запуска - статус (код ошибки) адаптера
получения версии шейдеров нет в системных функциях. Это нужно плагином с directx поработать или напрямую с видяхой... а вообще же есть разные списки карт по поколениям с характеристиками, например.
Добавлено (12 Август 2011, 20:44) --------------------------------------------- 1.1 + сетевуха
Я бы предложил добавить еще одну опцию к функции получения инфы о логических дисках: "в мегабайтах". А то глаза разбегаются от такого числа без точек...
И если в демке сделать два поля ввода - для вывода инфы о дисках и о графическом адаптере - для каждой функции свой, то было бы немного удобнее, а то остальная инфа сохраняется и можно, перелистывая, ее просматривать, а тут - либо диски, либо гр.адаптер.
Спасибо за новые функции!
Добавлено (13 Август 2011, 16:50) ---------------------------------------------
P.S.: Только не смейтесь - а возможно функциями прочитать атрибуты S.M.A.R.T. ? Конкретно, мне все еще интересно получить температуру жесткого диска (температуру воздуха внутри него).
Т.е. ниже, чем выдают спец.программы? А если провести эксперимент и сопоставлять показания парочки программ с результатами функции, то может быть можно будет найти нужные поправки или даже один постоянный коэффициент?
Если будет время и желание (поскольку это совсем не срочно, из разряда "блажь в голову") забацай функцию, а я поэкспериментирую и попробую определить насколько устойчивым является расхождение с тем, что показывают спец.программы.
массив данных smart получить можно но искренне советую направить энергию в другое русло, т.к. слишком велик шанс потратить ее впустую. позиция данных в массиве может еще от модели винта зависеть. непонятно что это, кельвины или цельсии... надо точно знать. посмотрел всякие исходники, типа в 115 позиции пишут, или 161-163... где-то конвертируется, где-то нет...
поставив дефрагментацию я опытным путем установил колебания параметров почти равные температуре на раскомментированные позиции... для моего винта по крайней мере. если данные для разных винтов будут разные то в этом не будет смысла.
Code
Set objWMIService = GetObject("winmgmts:\\.\root\WMI") Set colItems = objWMIService.ExecQuery( _ "SELECT * FROM MSStorageDriver_ATAPISmartData",,48) For Each objItem in colItems msgbox "Массив данных: " & Join(objItem.VendorSpecific, ",") ' msgbox objItem.VendorSpecific(115) ' msgbox objItem.VendorSpecific(161) ' msgbox objItem.VendorSpecific(162) ' msgbox objItem.VendorSpecific(163) msgbox objItem.VendorSpecific(139) msgbox objItem.VendorSpecific(151) Next
Добавлено (13 Август 2011, 18:25) ---------------------------------------------
не ну прям очень похожие данные, и меняются в соотв. с температурой, щас прям совпали с реалом 42 и 42/42...
Функция выдала 3 мессаги - массив (там много цифр и я ничего не понял), потом два окна, в первом из которых - 38, а во втором 52. По последнему полное совпадение:
первая мессага это весь массив данных smart. Нужно узнать в какой позиции массива температура, подозрительные позиции я указал. попробуй раскомментировать все позиции и посмотри не будет ли еще совпадений Как задавать вопросы
Попробовал, больше совпадений нет, только последняя мессага. Но зато последняя показывает в точности тоже, что и спец.утилита. Рабоооотает!!! Специально попробовал охладить (направил на нотик комнатный вентилятор). Цифры вновь совпали: 51 и 51.
ну пусть еще кто нибудь попробует почитать температуру...
Добавлено (13 Август 2011, 19:07) --------------------------------------------- подключи и посмотри, он должен в цикле выдавать эти данные по каждому найденному приводу
что у тебя температура тоже в 151-й переменной массива?
видимо да, но справедливо ли это для любого привода я не знаю. надо тестить другие диски.
Добавлено (13 Август 2011, 19:12) ---------------------------------------------
тестим 151 элемент массива
Code
Set objWMIService = GetObject("winmgmts:\\.\root\WMI") Set colItems = objWMIService.ExecQuery( _ "SELECT * FROM MSStorageDriver_ATAPISmartData",,48) For Each objItem in colItems MsgBox "Привод: " & objitem.InstanceName msgbox "Температура: " & objItem.VendorSpecific(151) Next
это идентификаторы диска в системе. не обращай внимания, я пока поставил чтобы знать для какого диска инфа выводится. И выводится ли вообще для нескольких дисков?
Добавлено (13 Август 2011, 19:32) ---------------------------------------------
А как дать функции понять, какой диск надо читать?
Добавлено (13 Август 2011, 20:04) --------------------------------------------- Я подключил внешний, но в текущем виде выводится инфа только по тому, который системный.
Добавлено (15 Август 2011, 06:26) --------------------------------------------- Господа необукеры, проверьте плиз работу функции (made in DEMBEL) чтения температуры hdd.
Чтобы облегчить вам жизнь я скомпилировал небольшое тестовое приложение из одной кнопки (функция уже там, ничего не надо устанавливать).
- набери в консоли wbemtest - подключить... и набери root\wmi, подключить... - экземпляры, набери MSStorageDriver_ATAPISmartData должно появиться окно с результатом запроса, там должны быть найденные обьекты
- даблклик по обьекту - вывести MOF должно быть чтото вроде
Господа необукеры, проверьте плиз работу функции (made in DEMBEL) чтения температуры hdd.
Вадим неисправим!
Имейте ввиду, джентельмены, что если HDD в биосе выставлен, например, в ACHI режиме (т.е. НЕ IDE), то на температуре (как и на всех остальных атрибутах SMART) обламываются даже специализированные утилиты.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Set Services = GetObject("winmgmts:{impersonationLevel=Impersonate}\\.\root\wmi") Set ObjectSet = Services.InstancesOf("MSAcpi_ThermalZoneTemperature") For Each Object In ObjectSet msgbox "Температура CPU: " & ((Object.CurrentTemperature - 2732) / 10) & Chr(176) & "C" Next