Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нужно узнать метку диска [D1, D2, D3, D4, D5, D6, D7, Win95/98]


Vit1251 ©   (2002-12-20 23:26:00) 

Есть Audio CD-ROM как узнать метку или серийный номер диска?


AlexT1000   (2002-12-21 10:14:00) [1]

function IsCorrectCDVolume(TestVolume:String):boolean;
vAR sVolume:string;DriveType,Mask,I,Drivers,j:DWord;
ch:char;
drv:byte;
OldErrorMode: Integer;
NotUsed, VolFlags: DWORD;
Buf: array [0..MAX_PATH] of Char;
begin
Result:=false;
TestVolume := AnsiUpperCaseFileName(TestVolume);
Drivers:=GetLogicalDrives;
drv:=97;Mask:=1;
SetErrorMode(SEM_FAILCRITICALERRORS);
for i:=0 to 25 do
begin
ch:=Char(CHR(drv+i));
DriveType:=GetDriveType(PChar(ch + ":\"));
if (Drivers and Mask<>0) and (DriveType=DRIVE_CDROM) then
begin
OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
Buf[0] := #$00;
if GetVolumeInformation(PChar(string(chr(drv+i)) + ":\"), Buf, DWORD(sizeof(Buf)),
nil, NotUsed, VolFlags, nil, 0) then
SetString(sVolume, Buf, StrLen(Buf))
else sVolume := "";
sVolume := AnsiUpperCaseFileName(sVolume);
if sVolume=TestVolume then begin Result:=true;Exit;end;
finally SetErrorMode(OldErrorMode); end;
end; //if
Mask:=Mask shl 1;
end; //for
end;
///////////////////////////////////////////////////////////////////////////////


Наверх

Титульная страница Поиск, карта сайта Написать письмо