![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 2 Всего: 4 |
Подскажите пожалуйста, как получить информацию о том, какие установлены жесткие диски, и какие метки драйвов им соответствуют?
Спасибо! |
|||
|
||||
serious |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 15.2.2003 Где: Пенза Репутация: нет Всего: 1 |
Вот пример, как определить, существует ли диск в системе:
Теперь об информации о дисках: исчерпывающую информацию по этому поводу дает функция GetVolumeInformation, посмотри help, там все понятно (там и серийный номер диска, и тип файловой системы, и прочее и прочее). Вот параметры FileSysFlags: FS_CASE_IS_PRESERVED - (при записи на диск сохраняется регистр букв в его имени) FS_CASE_SENSITIVE - (поддерживается поиск файлов с учетом регистра букв) FS_UNICODE_STORED_ON_DISK - (поддерживается сохранение имен файлов в UniCode) FS_PERSISTENT_ACLS - (поддерживаются списки контроля доступа (ACL). Только для NTFS) FS_FILE_COMPRESSION - (поддерживается сжатие файлов на уровне системы) FS_VOL_IS_COMPRESSED - (устройство представляет собой сжатый диск) Определение типа диска:
-------------------- Я знаю то, что ничего не знаю, а некоторые не знают и этого. |
||||
|
|||||
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 2 Всего: 4 |
serious, спасибо! Но это все относится к драйву (логическому диску), а не к жесткому диску... Мне нужна информация именно о жеском диске, и о связи его с логическим....
|
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Посмотри функцию DeviceIoControl - может там что получиться. Я ее мало использовал, но что-то там было.
Там есть ссылка на CreateFile - эта функция под NT может действительно вернуть хэндл на физический диск. You can use the CreateFile function to open a disk drive or a partition on a disk drive. The function returns a handle to the disk device; that handle can be used with the DeviceIOControl function. |
|||
|
||||
serious |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 15.2.2003 Где: Пенза Репутация: нет Всего: 1 |
Что-то не совсем понял вопрос: тебе нужна информация типа серийный номер, объем диска, кластеры.... Так что ли? Поясни конкретнее.
-------------------- Я знаю то, что ничего не знаю, а некоторые не знают и этого. |
|||
|
||||
Medved |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Пример использования:
-------------------- |
||||
|
|||||
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 2 Всего: 4 |
AntonSaburov, спасибо, посмотрю!
Pegas, но это все относится к логическим дискам. serious, типа этого... Например у меня есть 2 жестких диска, один Maxtor объемом 20 Gb и второй WD объемом 15Gb. Первый (Maxtor) разбила на 3 патиции: C, D, E соответственно 10Gb, 4Gb, 6Gb. Второй оставила с одной патицией F. Тем кодом, который привел serious и Pegas, можно получить информацию о том, что у меня в системе есть логические диски C, D, E, F их серийные номера, их объем. А у меня задача узнать сколько винчестеров у меня стоит, т.е. узнать о том, что у меня стоит 2 винчестера. Какие они, т.е., что это Maxtor и WD. Какой у них объем, т.е., что 20Gb и 15Gb. И на какие они патиции (логические диски) разбиты. А уже информацию по логическим дискам можно получить кодом приведенным выше Pegasом и seriousом. Чтобы совсем было понятно: зайдите в Control Panel - Administrative tools - Computer management - Storage - Disk management. Вот в таком виде информацию... Это сообщение отредактировал(а) Dayana - 12.3.2003, 18:42 |
|||
|
||||
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 2 Всего: 4 |
AntonSaburov, похоже, это то, что мне надо... Спасибо! :-)
|
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Ну, я, это, типа, завсегда, мы ж понимаем ... ![]() Вот ![]() |
|||
|
||||
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 2 Всего: 4 |
AntonSaburov, только это работает для NT, а для 95/98 не работает... :-(
Есть ли какой-нибудь способ добраться до информации BIOSа? (для всех систем) Ведь BIOS видит диски. |
|||
|
||||
serious |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 15.2.2003 Где: Пенза Репутация: нет Всего: 1 |
А что конкретно под NT не работает? Все? Попробую под XP это сделать, если не пойдет, то будем думать дальше.
-------------------- Я знаю то, что ничего не знаю, а некоторые не знают и этого. |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Я уже очень давно не работаю под такими ОС - предпочитаю с ними не связываться. Так что здесь мало что могу посоветовать. Но с другой стороны эти ОС дырявые и можно что-то с прямым доступом к памяти поискать. |
|||
|
||||
Dayana |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 2 Всего: 4 |
serious, для NT все работает. Читай внимательнее...
AntonSaburov, у меня просто задача для разных ОС. Поискать можно... вот и ищу... :-) |
|||
|
||||
serious |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 15.2.2003 Где: Пенза Репутация: нет Всего: 1 |
Assembler? ЗЫ А вообще, посмотри, не равен ли у тебя 0 дескриптор винта. -------------------- Я знаю то, что ничего не знаю, а некоторые не знают и этого. |
|||
|
||||
serious |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 15.2.2003 Где: Пенза Репутация: нет Всего: 1 |
Если ничего не путаю, там немного другой способ получения дескриптора. -------------------- Я знаю то, что ничего не знаю, а некоторые не знают и этого. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |