Дякую ща буду дивитися.
Ще раз спасибі, але це трохи не те, мені потрібно побачити диски зі змінними Ностел (флоп, usb пристрої. Дізнатися чи є диск, диском зі змінним носієм можна GetDriveType, а ось як дізнатися що це за носій, флоп, картрейдер, флеш модуль ?
> Мені потрібно побачити диски зі змінними Ностел
Очевидно про це треба писати в першому питанні. Щоб я не сильно напружувався, викладаючи посилання.
Силлка дуже допомогла, отримати відповіді на інші питання :)
А ось по другій частині тиша.
Щось на зразок цього :
begin
# XA0; case GetDriveType ( "C:") of
# XA0; # XA0; 0: ShowMessage ( "The drive type can not be determined");
# XA0; # XA0; 1: ShowMessage ( "The root directory does not exist");
# XA0; # XA0; DRIVE_REMOVABLE: ShowMessage ( "The disk can be removed");
# XA0; # XA0; DRIVE_FIXED: ShowMessage ( "The disk can not be removed");
# XA0; # XA0; DRIVE_REMOTE: ShowMessage ( "The drive is remote (network) drive");
# XA0; # XA0; DRIVE_CDROM: ShowMessage ( "The drive is a CD-ROM drive");
# XA0; # XA0; DRIVE_RAMDISK: ShowMessage ( "The drive is a RAM disk");
# XA0; end;
Що щось подібне до цього є в стандартній довідці. Це вже реалізовано. Питання в іншому, диск DRIVE_REMOVABLE, я можу отримати список розділів на ньому (див приклад від Ігоря Шевченка), можу дізнатися диск в пристрій чи ні, але мені ще треба знати що це за пристрій, з CDROM все ясно, але як дізнатися що за носій якщо це: флоп, флеш карта, картрідер і тим більше який тип карти в нього вставлений.
там ціла прірва бібліотек і компонентів
> # XA0; [8] cranium # XA0; (05.07.05 00:45)
> Але як дізнатися що за носій
> Якщо це: флоп, флеш карта, картрідер і тим більше який
> Тип карти в нього вставлений.
А з чого ви взяли, що це завдання хоча-б теоретично має рішення?
> CDROM все ясно
Ну, якщо все ясно, то ви можете загребти чималі гроші за ідею про те, як побудувати алгоритм захисту, обманює абсолютно все емулятори CD-приводів.
> Але як дізнатися що за носій якщо це: флоп, флеш карта,
> картрідер
Флоппі від не флоппі я відрізняв так:
# XA0; # XA0; DRIVE_REMOVABLE:
# XA0; # XA0; # XA0; begin
# XA0; # XA0; # XA0; # XA0; System.Delete (DrivePath, 3, 1);
# XA0; # XA0; # XA0; # XA0; if QueryDosDevice (PChar (DrivePath), Buffer, SizeOf (Buffer)) = 0 then
# XA0; # XA0; # XA0; # XA0; # XA0; Result.DriveType: = dtError
# XA0; # XA0; # XA0; # XA0; else if (SameText (Buffer, "\ Device \ Floppy0")) then
# XA0; # XA0; # XA0; # XA0; # XA0; Result.DriveType: = dtFloppy
# XA0; # XA0; # XA0; # XA0; else
# XA0; # XA0; # XA0; # XA0; # XA0; Result.DriveType: = dtRemovable;
# XA0; # XA0; # XA0; end;
# XA0; # XA0; else
# XA0; # XA0; # XA0; Result.DriveType: = dtError;
# XA0; # XA0; end;
Тип носія можна встановити і більш точно. Є якийсь IOCTL код, зараз лінь шукати. Там можна розрізнити і OMD драйв, і ZIP, і флоппі.
Код зветься щось на зразок IOCTL_GET_MEDIA_TYPE. Це я абсолютно на вскидку, не пам'ятаю точно.
Пам'ять: 0.74 MB
Час: 0.047 c