Hoi Lynx,
Op de Unofficial Delphi Developers FAQ vond ik de volgende routines, volgens mij moet je daarmee een eind komen.
Code:
function FindFirstCDROM: shortstring;
var
AList : TStringList;
Counter : integer;
begin
Result := 'no CDROM present';
AList := TStringList.Create;
ListDrives(AList);
for Counter := 0 to AList.Count-1 do
if GetDriveType(PChar(Alist.Strings[Counter])) = DRIVE_CDROM then
Result := Alist.Strings[Counter]
end;
procedure ListDrives(Strings: TStringList);
const BufSize = 256;
var
Buffer : PChar;
P : PChar;
begin
GetMem(Buffer, BufSize);
try
Strings.BeginUpdate;
try
Strings.Clear;
if GetLogicalDriveStrings(BufSize, Buffer) <> 0 then begin
P := Buffer;
while P^ <> #0 do begin
Strings.Add(P);
Inc(P, StrLen(P) + 1);
end;
end;
finally
Strings.EndUpdate;
end;
finally
FreeMem(Buffer, BufSize);
end;
end;
Bookmarks