У меня есть некое устройство, которое при подключении к компу определяется как съемный диск, при этом этот диск имеет строго определенную метку тома, а теперь сам вопрос, как зная метку тома определенного диска узнать его букву?
Привет, lsv!
Вы пишешь 12 октября 2004:
l> У меня есть некое устройство, которое при подключении к компу определяется как съемный диск, при этом этот диск имеет строго
l> определенную метку тома, а теперь сам вопрос, как зная метку тома определенного диска узнать его букву?
Тупым перебором всех устройств и чтением их "System Volume Information"
--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.9 gamma
Привет, 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
Здравствуйте, 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 >>
Привет, JazzzMaster!
Вы пишешь 13 октября 2004:
J> Только вместо for Drive := 'A' to 'Z' do заюзать GetLogicalDriveStrings
А нахрена?
А потом парсить буфер... Нахрена?
Лишняя морока.
--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.9 gamma