Буква диска по его названию
От: lsv  
Дата: 12.10.04 10:21
Оценка:
У меня есть некое устройство, которое при подключении к компу определяется как съемный диск, при этом этот диск имеет строго определенную метку тома, а теперь сам вопрос, как зная метку тома определенного диска узнать его букву?
Re: Буква диска по его названию
От: Alex.Che  
Дата: 12.10.04 10:31
Оценка:
Привет, lsv!
Вы пишешь 12 октября 2004:

l> У меня есть некое устройство, которое при подключении к компу определяется как съемный диск, при этом этот диск имеет строго

l> определенную метку тома, а теперь сам вопрос, как зная метку тома определенного диска узнать его букву?

Тупым перебором всех устройств и чтением их "System Volume Information"

--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.9 gamma
Re[2]: Буква диска по его названию
От: lsv  
Дата: 12.10.04 10:43
Оценка:
Здравствуйте, Alex.Che, Вы писали:

AC>Тупым перебором всех устройств и чтением их "System Volume Information"


А как тогда узнать список (буквы) всех устройств (дисков)?
Re[3]: Буква диска по его названию
От: Alex.Che  
Дата: 12.10.04 10:53
Оценка: 3 (1)
Привет, lsv!
Вы пишешь 12 октября 2004:

AC>> Тупым перебором всех устройств и чтением их "System Volume Information"


l> А как тогда узнать список (буквы) всех устройств (дисков)?


var
  Drive: Char;
  DriveLetter: String[4];
begin
  for Drive := 'A' to 'Z' do
  begin
    DriveLetter := Drive + ':\';
    case GetDriveType(PChar(Drive + ':\')) of
      DRIVE_REMOVABLE:
        Memo1.Lines.Add(DriveLetter + '     Floppy Drive');
      DRIVE_FIXED:
        Memo1.Lines.Add(DriveLetter + '     Fixed Drive');
      DRIVE_REMOTE:
        Memo1.Lines.Add(DriveLetter + '     Network Drive');
      DRIVE_CDROM:
        Memo1.Lines.Add(DriveLetter + '     CD-ROM Drive');
    end;
  end;
end;


--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.9 gamma
Re[4]: Буква диска по его названию
От: JazzzMaster Россия  
Дата: 12.10.04 23:07
Оценка: +1
Здравствуйте, Alex.Che, Вы писали:

AC>
var
AC>  Drive: Char;
AC>  DriveLetter: String[4];
AC>begin
AC>  for Drive := 'A' to 'Z' do
AC>  begin
AC>    DriveLetter := Drive + ':\';
AC>    case GetDriveType(PChar(Drive + ':\')) of
AC>      DRIVE_REMOVABLE:
AC>        Memo1.Lines.Add(DriveLetter + '     Floppy Drive');
AC>      DRIVE_FIXED:
AC>        Memo1.Lines.Add(DriveLetter + '     Fixed Drive');
AC>      DRIVE_REMOTE:
AC>        Memo1.Lines.Add(DriveLetter + '     Network Drive');
AC>      DRIVE_CDROM:
AC>        Memo1.Lines.Add(DriveLetter + '     CD-ROM Drive');
AC>    end;
AC>  end;
AC>end;


AC>--

AC>With best regards, Alex Cherednichenko.

Только вместо for Drive := 'A' to 'Z' do заюзать GetLogicalDriveStrings

[msdn]The GetLogicalDriveStrings function fills a buffer with strings that specify valid drives in the system.

DWORD GetLogicalDriveStrings(
DWORD nBufferLength, // size of buffer
LPTSTR lpBuffer // drive strings buffer
);
[/msdn]
... << RSDN@Home 1.1.3 stable >>
Re[5]: Буква диска по его названию
От: Alex.Che  
Дата: 13.10.04 07:31
Оценка: +1 :)
Привет, JazzzMaster!
Вы пишешь 13 октября 2004:

J> Только вместо for Drive := 'A' to 'Z' do заюзать GetLogicalDriveStrings


А нахрена?
А потом парсить буфер... Нахрена?
Лишняя морока.

--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.9 gamma
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.