Todos os HDs de uma máquina

Delphi

10/01/2005

Bom dia pessoal!

Como faço para saber quais são todas as unidades de disco rígido da máquina que o aplicativo está sendo executado? A rotina deve retornar as letras das unidades.

Agraço a ajuda!

Walter.


Wander Waldemorte

Wander Waldemorte

Curtidas 0

Respostas

Wander Waldemorte

Wander Waldemorte

10/01/2005

Nenhuma sugestão pessoal???

Ainda aguardo respostas!

Obrigado!


GOSTEI 0
Massuda

Massuda

10/01/2005

Basta combinar as funções GetLogicalDrives e GetDriveType da API do Windows:
function ListaHDs: string;
var
  Drives: DWord;
  Mascara: DWord;
  S: String;
  I: Integer;
begin
  Result := ´´;
  S := ´A:\´;
  Drives := GetLogicalDrives;
  Mascara := 1;
  for I:= 1 to 32 do begin
    if (Mascara and Drives) <> 0 then begin
      if GetDriveType(PChar(S)) = DRIVE_FIXED then begin
        Result := Result + S[1];
      end; 
    end;
    Mascara := Mascara shl 1;
    Inc(S[1]);
  end;
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), ListaHDs retorna ´CD´.


GOSTEI 0
Wander Waldemorte

Wander Waldemorte

10/01/2005

Brigadão, cara!!! Era o que eu precisava!!! Valeu mesmo! :D


GOSTEI 0
POSTAR