Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Вниз

Как определить 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.036 c
1-1118836041
kot
2005-06-15 15:47
2005.07.11
Code snippets D9


8-1110903486
tazik
2005-03-15 19:18
2005.07.11
Как заглушить солиста в мр3


9-1104993420
[Baradoo]
2005-01-06 09:37
2005.07.11
3D космический шутер (demo) 600KB


6-1112964584
greg_us
2005-04-08 16:49
2005.07.11
WSA error 10047 !


3-1117292126
Nimfa
2005-05-28 18:55
2005.07.11
SQL запрос, условия в агрег. функции sum()





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский