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

Вниз

узнать букву USB-диска   Найти похожие ветки 

 
batya-x   (2008-07-15 22:35) [0]

как узнать букву съёмного диска, после того как её вставили в usb порт


 
Правильный$Вася   (2008-07-15 22:37) [1]

а если их несколько?
а иногда буква автоматом не назначается (вернее, попадает на занятую другим подключением, напрмер, замапленный сетевой диск)

ps а буквы вставляют?


 
Игорь Шевченко ©   (2008-07-15 22:50) [2]

если на съемном диске несколько разделов то и буков может быть несколько.


 
KilkennyCat ©   (2008-07-15 23:48) [3]

в реестре, наверное, глобал, символьные имена... тогда можно отследить и вышеназванные особенности.


 
batya-x   (2008-07-16 00:15) [4]

что за глобал в реестре, по подробнее можно


 
имя   (2008-07-16 00:45) [5]

Удалено модератором


 
KilkennyCat ©   (2008-07-16 00:55) [6]

по-подробнее не помню. помню, что это NT-имена устройств, вроде.
посмотрите это... там куча всего...
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB

или информацию по QuereDosDevice();


 
Denis__ ©   (2008-07-16 14:35) [7]

Гугли. Я в своё время нагуглил.


 
stas ©   (2008-07-16 15:11) [8]

Тут пример как получить список дисков.
Флешка это TDriveType = dtFloppy, но  буква не "A" и не "B"


unit Unit1;

interface

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

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

type TDriveType = (dtUnknown, dtNoDrive, dtFloppy, dtFixed, dtNetwork, dtCDROM,
   dtRAM);

Procedure GetDriveLst (List:TStrings);
var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
GetDriveLst (ListBox1.Items);
end;

Procedure GetDriveLst (List:TStrings);
var
 DriveNum: Integer;
 DriveChar: Char;
 DriveType: TDriveType;
 DriveBits: set of 0..25;

 procedure AddDrive(const Name:string);
 begin
  List.Add(Name);
 end;

begin
 { fill list }
 //Clear;
 Integer(DriveBits) := GetLogicalDrives;
 for DriveNum := 0 to 25 do
 begin
   if not (DriveNum in DriveBits) then Continue;
   DriveChar := Char(DriveNum + Ord("a"));
   DriveType := TDriveType(GetDriveType(PChar(DriveChar + ":\")));
 //  Memo1.Lines.Add(DriveChar)
{    if TextCase = tcUpperCase then   }
     DriveChar := Upcase(DriveChar);

   case DriveType of
     dtFloppy:   AddDrive (DriveChar+":\0");
     dtFixed:    AddDrive(DriveChar+":\1");
     dtNetwork:  AddDrive(DriveChar+":\2");
     dtCDROM:    AddDrive(DriveChar+":\3");
     dtRAM:      AddDrive(DriveChar+":\4");
   end;
 end;
end;
end.


 
Правильный$Вася   (2008-07-16 15:47) [9]


> Флешка это TDriveType = dtFloppy

гибкая флэшка - это здорово
а почему флэшка неможет быть A, если у меня флопа совсем нет? хочу - назначу


 
Игорь Шевченко ©   (2008-07-16 16:03) [10]


> Флешка это TDriveType = dtFloppy, но  буква не "A" и не
> "B"


Я тебя разочарую - даже флоппи может быть не "A" и не "B"


 
stas ©   (2008-07-17 13:10) [11]

Правильный$Вася   (16.07.08 15:47) [9]
Значит у тебя работать данный код небудет.


 
Правильный$Вася   (2008-07-17 14:38) [12]


> Значит у тебя работать данный код небудет.

в топку такие коды


 
stas ©   (2008-07-17 15:16) [13]

Правильный$Вася   (17.07.08 14:38) [12]
так опубликуйте альтернативный.



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

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

Наверх




Память: 0.49 MB
Время: 0.022 c
15-1215410372
Загрузка
2008-07-07 09:59
2008.08.24
Загрузка сайта www.mail.ru


2-1216289835
NJ
2008-07-17 14:17
2008.08.24
DLL


2-1216301860
Mops
2008-07-17 17:37
2008.08.24
свой пункт меню


2-1216192427
Alexey
2008-07-16 11:13
2008.08.24
TImage сделать черно-белым


15-1215411389
oxffff
2008-07-07 10:16
2008.08.24
Сколько добираться из аэропорта Адлера до Лазаревское.