| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Информация о HDD |
| Автор: byravchik 6.3.2009, 11:23 |
| Доброго времени суток... Помогите, пожалуйста, с такой проблемкой... Как можно реализовать следующую задачу в дельфи: Необходимо определить наличие в системе физических жестких дисков, их количество, тип интерфейса подключения(IDE или SATA), вывести информацию о модели и объеме... и для каждого из этих дисков вывести данные о их температуре. |
| Автор: Virtuals 6.3.2009, 13:38 |
| byravchik, температура есть в SMART секторе, соответственно читай его, и смотри подсказку форума внизу страници http://forum.vingrad.ru/forum/topic-250176/anchor-entry1804177/0.html#look |
| Автор: byravchik 6.3.2009, 14:11 |
| Я бы не стал писать, если бы нашел информацию... С температурой я более или менее разобрался... В тех ссылках которые ты привел размер жесткого определяться по томам, а мне необходимо определить размер всего жесткого... Так же там ничего не говориться о определении типа интерфейса подключения жесткого...:( |
| Автор: Virtuals 6.3.2009, 19:16 | ||||
| byravchik, а я бы не давал таких советов, непроверив! http://forum.vingrad.ru/topic-40650.html раз научился получать температуру, то наверное заметил что получение smart 2х сектоов по 512б и получение ID 1 сектор, есть одно и то же, только функция разная для винта. (и там и там используется прямой доступ к контроллеру винта, и подача ему комманд IDE_ID_FUNCTION = $EC; // Returns ID sector for ATA. IDE_EXECUTE_SMART_FUNCTION = $B0; // Performs SMART cmd. ) вот те структура
в примере это выглядело так
на какие нить мысли наводит? а если попробуеш для себя понять что SATA и PATA это не прсто набор букФ, а АТА- это достаточно стандартизированная спецификация ;) да найдеш себе пдф хотя-бы на ата5 (по всему инету валяется), думаю понимания добавит. ЗЫ обрати внимание хотябы на это LBACapacity : LongInt; {Total number of user addressable sectors. LBA mode only} Добавлено через 5 минут и 31 секунду или тебе обязательно нужно, чтоб был текст "размер винта можно взять из служебного сектора ID методом LBACapacity*512= сколько байтов в винте" |