Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить список физических дисков и их тип [D7]


cranium ©   (2005-07-04 03:03:00) 

Как получить список физических дисков и их тип, а также сопоставить их логическим дискам.


Alex Konshin   (2005-07-06 00:25:00) [1]

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/ioctl_storage_get_media_types_ex.asp
Она выдает информацию об устройстве, в том числе это:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devio/base/storage_media_type.asp
Мне еще кажется, что в DDK я видел больше типов носителей.


Alex Konshin   (2005-07-06 00:03:00) [2]

Код зовется что-то вроде IOCTL_GET_MEDIA_TYPE. Это я совершенно на вскидку, не помню точно.


Alex Konshin   (2005-07-06 00:01:00) [3]

Тип носителя можно установить и более точно. Есть какой-то IOCTL код, сейчас лень искать. Там можно различить и OMD драйв, и ZIP, и флоппи...


Игорь Шевченко   (2005-07-05 10:48:00) [4]


> но как узнать что за носитель если это :флоп, флешь карта,
> картридер


Флоппи от не-флоппи я отличал так:

   DRIVE_REMOVABLE:
     begin
       System.Delete (DrivePath, 3, 1);
       if QueryDosDevice (PChar(DrivePath), Buffer, SizeOf(Buffer)) = 0 then
         Result.DriveType := dtError
       else if (SameText(Buffer, '\Device\Floppy0')) then
         Result.DriveType := dtFloppy
       else
         Result.DriveType := dtRemovable;
     end;
   else
     Result.DriveType := dtError;
   end;


Просто Джо   (2005-07-05 04:18:00) [5]


>  [8] cranium   (05.07.05 00:45)
> но как узнать что за носитель
> если это :флоп, флешь карта, картридер и темболее какой
> тип карты в него вставлен.....

А с чего вы взяли, что эта задача хотя-бы теоретически имеет решение?

> CDROM все ясно

Ну, если все ясно, то вы можете загрести немалые деньги за идею о том, как построить алгоритм защиты, обманывающей абсолютно все эмуляторы CD-приводов.


АНТИСПАММЕР   (2005-07-05 01:39:00) [6]

посмотрите на http://www.bsdg.org/resources/Delphi_Free_Components.html

там целая прорва библиотек и компонентов


cranium   (2005-07-05 00:45:00) [7]

Что то вроде этого есть в стандартной справке. Это уже реализовано.. Вопрос в другом, диск DRIVE_REMOVABLE, я могу получить список разделов на нем (см пример от Игоря Шевченко), могу узнать диск в устройстве или нет, но мне еще надо знать что это за устройство, с CDROM все ясно, но как узнать что за носитель если это :флоп, флешь карта, картридер и темболее какой тип карты в него вставлен.....


АНТИСПАММЕР   (2005-07-05 00:35:00) [8]

Что то вроде этого :

begin
 case GetDriveType('C:\') of
   0: ShowMessage('The drive type cannot be determined');
   1: ShowMessage('The root directory does not exist');
   DRIVE_REMOVABLE: ShowMessage('The disk can be removed');
   DRIVE_FIXED: ShowMessage('The disk cannot be removed');
   DRIVE_REMOTE: ShowMessage('The drive is remote (network) drive');
   DRIVE_CDROM: ShowMessage('The drive is a CD-ROM drive');
   DRIVE_RAMDISK: ShowMessage('The drive is a RAM disk');
 end;


cranium   (2005-07-04 17:16:00) [9]

Сыллка очень помогла, получить ответы на другие вопросы:)
А вот по второй части тишина....


Игорь Шевченко   (2005-07-04 17:05:00) [10]


> мне нужно увидеть диски со сменными ностелями


Очевидно об этом надо писать в первом вопросе ? Чтобы я не сильно напрягался, выкладывая ссылку.


cranium   (2005-07-04 15:51:00) [11]

Еще раз спасибо, но это немного не то, мне нужно увидеть диски со сменными ностелями (флоп, usb устройства. Узнать является ли диск, диском со сменным носителем можно GetDriveType, а вот как узнать что это за носитель, флоп, картрейдер, флешь модуль?


cranium   (2005-07-04 14:37:00) [12]

Спасибо ща буду смотреть...


Игорь Шевченко   (2005-07-04 10:30:00) [13]

Для NT-систем:
http://www.schevchenko.net.ru/SRC/DeviceIoControl_60.zip


panov   (2005-07-04 10:10:00) [14]

Удалено модератором


Наверх

Титульная страница Поиск, карта сайта Написать письмо