31 de jan. de 2005

Quais são as unidades de disco rígido da máquina?

Do fórum ClubeDelphi:

Como faço para saber quais são todas as unidades de disco rígido da máquina que o aplicativo está sendo executado?

Basta combinar as funções GetLogicalDrives e GetDriveType da API do Windows:

1 function ListaHDs: string; 2 var 3 Drives: DWord; 4 Mascara: DWord; 5 S: String; 6 I: Integer; 7 begin 8 Result := ''; 9 10 S := 'A:\'; 11 12 Drives := GetLogicalDrives; 13 14 Mascara := 1; 15 for I:= 1 to 32 do begin 16 17 if (Mascara and Drives) <> 0 then begin 18 19 if GetDriveType(PChar(S)) = DRIVE_FIXED then begin 20 21 Result := Result + S[1]; 22 end; 23 end; 24 25 Mascara := Mascara shl 1; 26 Inc(S[1]); 27 end; 28 end;

Se você tiver apenas um HD (normalmente o drive C), ListaHDs retorna 'C'; se você tiver dois HDs (ou duas partições num mesmo HD), retorna 'CD'.

Nenhum comentário: