![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
HDDs [D6, WinXP]
Anar © (2002-10-17 22:40:00)Как узнать сколько на компе жёстких дисков, а также их имена (метки)?
И у CD-ROM"a тоже не помешало бы...
Rouse_ (2002-10-17 22:52:00) [1]Вот блин, шестой раз на такой вопрос отвечаю, и именно в такой постановке
function TForm1.VolumeID(DriveChar: Char): string;
var
OldErrorMode: Integer;
NotUsed, VolFlags: DWORD;
Buf: array [0..MAX_PATH] of Char;
begin
OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
Buf[0] := #$00;
if GetVolumeInformation(PChar(DriveChar + ":\"), Buf, DWORD(sizeof(Buf)),
nil, NotUsed, VolFlags, nil, 0) then
SetString(Result, Buf, StrLen(Buf))
else Result := "";
if DriveChar < "a" then
Result := AnsiUpperCaseFileName(Result)
else
Result := AnsiLowerCaseFileName(Result);
Result := Format("[%s]",[Result]);
finally
SetErrorMode(OldErrorMode);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var Drive:Char;
begin
for Drive := "A" to "Z" do
begin
case GetDriveType(PChar(Drive+":\")) of
DRIVE_REMOVABLE:CheckListBox1.Items.Add(Drive+": "+VolumeID(Drive));//
TTCustomDelphiMaster (2002-10-17 22:46:00) [2]F1 - GetDriveType