2009. március 14., szombat
How to check if a drive is ready
Problem/Question/Abstract:
How can I check if there is a disk in the "A" drive without an error message box telling you that it is not ready?
Answer:
The following function accepts a drive letter as a parameter, and it will return a boolean value that indicates whether or not there is a disk in the drive.
function DiskInDrive(Drive: Char): Boolean;
var
ErrorMode: word;
begin
{make it upper case}
if Drive in ['a'..'z'] then
Dec(Drive, $20);
{make sure it's a letter}
if not (Drive in ['A'..'Z']) then
raise EConvertError.Create('Not a valid drive ID');
{turn off critical errors}
ErrorMode := SetErrorMode(SEM_FailCriticalErrors);
try
{ drive 1 = a, 2 = b, 3 = c, etc.}
if DiskSize(Ord(Drive) - $40) = -1 then
Result := False
else
Result := True;
finally
{restore old error mode}
SetErrorMode(ErrorMode);
end;
end;
Feliratkozás:
Megjegyzések küldése (Atom)
Nincsenek megjegyzések:
Megjegyzés küldése