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

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

Опредиление Тип устройста хранение информаций


Arazel ©   (2006-01-11 01:24:00) 

Как можно определить тип устройства?  FLASH/HDD/...

Вот тоже  самый DiskEdit определяет все устройства
а что где куда не может... Как определить?


Arazel   (2006-01-14 01:00:00) [1]

wal ©   (13.01.06 10:43) [19]
Ладно  вобщето это не так уж важно!
Но все равно интересно  :)


wal   (2006-01-13 10:43:00) [2]


> Flash не умеют создавать дополнительные(Расширеные) разделы!
Причем тут Flash? Я создавал несколько разделов на флэшке.


Игорь Шевченко   (2006-01-13 10:29:00) [3]


> В общем у меня такая идея!


Плохая идея


Ega23   (2006-01-13 09:12:00) [4]


> Думаю после этого можно сказать что это Flash :)


А почему не USB-ZIP?


Arazel   (2006-01-13 09:02:00) [5]

В общем у меня такая идея!

Flash не умеют создавать дополнительные(Расширеные) разделы!
Хотя таблица разделов существует! Но там только основной!
И к томуже что бы не путатьця мы узнаем две вещи о ней
первое: Должен определятся как внешние устройство
Второе: Как USB

Думаю после этого можно сказать что это Flash :)
как вам?


Джо   (2006-01-12 18:04:00) [6]

Total Commander флэшку "зелененьким значком" помечает. У кого есть ТС и сменный MO проверьте, пожалуйста, одинаковые ли значки у него с флэшкой. Подозреваю, что да.


Ega23   (2006-01-12 17:58:00) [7]

Как-нибудь через список VendorID вычислить? Из реестра?


Джо   (2006-01-12 17:57:00) [8]

> [11] Игорь Шевченко ©   (12.01.06 17:53)

Я-то понимаю. Это, так сказать, в порядке объективности, ибо автору требовалось флэш-накопитель отличать, насколько я понял. Вообще я в этом большой практической пользы не вижу, но что-ж...


Игорь Шевченко   (2006-01-12 17:53:00) [9]

Джо ©   (12.01.06 17:35) [8]

У меня, например, в XP в проводнике флешка от магнитооптики не
отличается. И то и то - съемный диск.


Игорь Шевченко   (2006-01-12 17:53:00) [10]

Джо ©   (12.01.06 17:35) [8]

У меня, например, в XP в проводнике флешка от магнитооптики не
отличается. И то и то - съемный диск.


Джо   (2006-01-12 17:40:00) [11]

> [9] Rouse_ ©   (12.01.06 17:37)

Для флоппика — да :)


Rouse_   (2006-01-12 17:37:00) [12]

Угу, а для флопика \Device\Floppy0


Джо   (2006-01-12 17:35:00) [13]

> [7] Rouse_ ©   (12.01.06 17:02)
> QueryDosDevice? :)

У меня для USB Flash-накопителя выдает устройство '\Device\Harddisk3\DP(1)0-0+9'


Rouse_   (2006-01-12 17:02:00) [14]

QueryDosDevice? :)
Что скажешь - красиво :)


Игорь Шевченко   (2006-01-12 16:49:00) [15]

Rouse_ ©   (12.01.06 15:39) [4]

Один из примеров отличия дискеты от других Removable Media в
http://kladovka.net.ru/download.cgi?id=193


Джо   (2006-01-12 15:50:00) [16]

> [4] Rouse_ ©   (12.01.06 15:39)
> DRIVE_REMOVABLE - флешка, дискета, ZIP

То-то и оно.
Ку?


Rouse_   (2006-01-12 15:39:00) [17]

DRIVE_REMOVABLE - флешка, дискета, ZIP
DRIVE_FIXED - хард.
DRIVE_CDROM - компакт.

Ы?


Джо   (2006-01-12 15:35:00) [18]

Если бы еще вышеприведенный код определял
> FLASH/HDD/...

:)


Rouse_   (2006-01-12 12:27:00) [19]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Memo1: TMemo;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
 NameSize = 4;
 VolumeCount = 26;
 TotalSize = NameSize * VolumeCount;
 Report = 'Volume: %s %s';
var
 Buff, Volume: String;
 I, Count: Integer;
begin
 SetLength(Buff, TotalSize);
 Count := GetLogicalDriveStrings(TotalSize, @Buff[1]) div NameSize;
 if Count = 0 then
   Memo1.Lines.Add(SysErrorMessage(GetLastError))
 else
   for I := 0 to Count - 1 do
   begin
     Volume := PChar(@Buff[(I * NameSize) + 1]);
     case GetDriveType(PChar(Volume)) of
       DRIVE_UNKNOWN: Memo1.Lines.Add(Format(Report, [Volume,
         'The drive type cannot be determined.']));
       DRIVE_NO_ROOT_DIR: Memo1.Lines.Add(Format(Report, [Volume,
         'The root path is invalid. For example, no volume is mounted at the path.']));
       DRIVE_REMOVABLE: Memo1.Lines.Add(Format(Report, [Volume,
         'The disk can be removed from the drive.']));
       DRIVE_FIXED: Memo1.Lines.Add(Format(Report, [Volume,
         'The disk cannot be removed from the drive.']));
       DRIVE_REMOTE: Memo1.Lines.Add(Format(Report, [Volume,
         'The drive is a remote (network) drive.']));
       DRIVE_CDROM: Memo1.Lines.Add(Format(Report, [Volume,
         'The drive is a CD-ROM drive.']));
       DRIVE_RAMDISK: Memo1.Lines.Add(Format(Report, [Volume,
         'The drive is a RAM disk.']));
     else
       Memo1.Lines.Add(Format(Report, [Volume, 'Xpen znaet chto :)']));
     end;
   end;
end;

end.


ПЛОВ   (2006-01-12 10:34:00) [20]

GetDriveType() ?


Наверх

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