Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

Как определить Flash диск в системе ?   Найти похожие ветки 

 
dreamse   (2005-05-10 09:35) [0]

В смысле отличить его от обычного жесткого диска ?

Функция :

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;

Выдаёт одно и тоже : The disk cannot be removed думает что это DRIVE_FIXED

Хотя я проверял на разных дисках , на жестком ( локальном ) и Flash

Может кто нибудь знает стандартное решение проверки ?


 
GreatMaster   (2005-05-10 10:10) [1]

1. А ты точно вместо "С:\" указывал чё надо?
2. Пробовал ли на СД и др.? Вдруг ваще не работает?
3. Секи размер. Если меньше 1Гб - это флэш :)


 
dreamse   (2005-05-10 10:16) [2]

> GreatMaster

1) Уже ответил в самом начале
2) Так же , нужно читать внимательнее вопрос :)
3) Решение конечно :) но во первых мне кажеться слишком корявым во вторых скоро уже будут в общем употреблении флешки больше 1 гб

Ещё варианты есть ?

Если пробывать определить номер диска при подколючении устройства :

const DBT_DEVICEARRIVAL = $8000;
const DBT_DEVICEQUERYREMOVE = $8001;
const DBT_DEVICEQUERYREMOVEFAILED = $8002;
const DBT_DEVICEREMOVEPENDING = $8003;
const DBT_DEVICEREMOVECOMPLETE = $8004;
const DBT_DEVICETYPESPECIFIC = $8005;
const DBT_CONFIGCHANGED = $0018;

// ******************* Работа с USB *********************

procedure TMain.WMDeviceChange(var message: TMessage);
var
 s : string;
begin
 {Do Something here}
 case message.wParam of
   DBT_DEVICEARRIVAL :
  showessage("ok");
   DBT_DEVICEQUERYREMOVE:
   begin
     s := "Permission to remove a device is requested";
   ShowMessage(s);
     {True grants premission}
     message.Result := integer(true);
     exit;
   end;
   DBT_DEVICEQUERYREMOVEFAILED :
     s := "Request to remove a device has been canceled";
   DBT_DEVICEREMOVEPENDING :
     s := "Device is about to be removed";
   DBT_DEVICEREMOVECOMPLETE :
showmessage("del");

   DBT_DEVICETYPESPECIFIC :
     s := "Device-specific event";
   DBT_CONFIGCHANGED :
     s:= "Current configuration has changed"
   else
     s := "Unknown Device Message";
 end;
 if s <> "" then   ShowMessage(s);
 inherited;
end;

То тут не понятно откуда получать имя диска :(


 
GreatMaster   (2005-05-10 10:22) [3]

Почему УСБ обязательно?

попробуй:  DBT_DEVICEQUERYREMOVE
она даёт: DEV_BROADCAST_HDR

The DEV_BROADCAST_HDR structure contains information about the device affected by a WM_DEVICECHANGE message.

typedef struct _DEV_BROADCAST_HDR {
   ULONG dbch_size;  
   ULONG dbch_devicetype;
   ULONG dbch_reserved;
} DEV_BROADCAST_HDR;
typedef DEV_BROADCAST_HDR *PDEV_BROADCAST_HDR;


Members

dbch_size

Size of this structure, in bytes.

dbch_devicetype

Type of device. Can be one of these values:

Value Meaning
DBT_DEVTYP_OEM OEM- or IHV-defined device type.
DBT_DEVTYP_VOLUME Logical volume.
DBT_DEVTYP_PORT Port device (serial or parallel).


 
VMcL ©   (2005-05-10 12:08) [4]

DeviceIoControl
?



Страницы: 1 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.046 c
5-1089198820
RagE
2004-07-07 15:13
2005.07.11
не срабатывает таймер


14-1118831214
Romkin
2005-06-15 14:26
2005.07.11
Отзыв о работе


5-1089604674
Maxim
2004-07-12 07:57
2005.07.11
статьи по ActivX


8-1106649051
Son
2005-01-25 13:30
2005.07.11
Координаты картинки в TImage


14-1118309693
КаПиБаРа
2005-06-09 13:34
2005.07.11
Помогите решить практическую задачу





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский