![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить список физических дисков и их тип [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]Удалено модератором