Hallo,
also ich habe das Problem etwas anders gelöst, für dein 'A'..'Z' kannst du auch die Funktion GetLogicalDriveStrings() nehmen. Folgendes funktionierte jedenfalls bei mir:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}
uses
Windows;
var
Drives: Array of Array[0..3] of Char;
i: integer;
begin
SetLength(Drives, 26);
SetLength(Drives, GetLogicalDriveStrings(length(Drives), @Drives[0]) div 4);
for i:= Low(Drives) to High(Drives) do
if GetDriveType(PChar(String(Drives[i])))= DRIVE_FIXED then
system.Writeln(String(Drives[i]));
end.