Vielen Dank für Eure Hinweise. Das hier ist jetzt dabei heraus gekommen:
Delphi-Quellcode:
function GetVolName(Drive:char;out VolSerialNo,FileSystemName:ansistring):ansistring;
var
DrivePath : Ansistring;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
VolumeSerialNo : DWORD;
buffer1 : array [0..MAX_PATH] of ansichar;
buffer2 : array [0..MAX_PATH] of ansichar;
PVolName : PChar;
VolumeName : Ansistring;
VolumeNameLength : integer;
begin
Result := '';
DrivePath := Drive + ':\';
fillchar(buffer1,Sizeof(buffer1),' ');
fillchar(buffer2,Sizeof(buffer2),' ');
GetVolumeInformation(PChar(DrivePath),
PChar(@buffer1[0]),
Length(buffer1),
@VolumeSerialNo,
MaximumComponentLength,
FileSystemFlags,
PChar(@buffer2[0]),
Length(buffer2));
Result:=buffer1;
VolSerialNo:=inttostr(VolumeSerialNo);
FileSystemName:=buffer2;
end;
Unter XP/D7 funktioniert es.
Ich habe übrigens keinen Datenträger mehr gefunden, der mit FindFirst und faVolumeID noch ein Ergebnis brachte (Disketten hab ich keine mehr)
vielen Dank nochmal!
K-H