Determine if a drive is ready  

Send By: Q3 Team
Web : www.q3.nu
Email: dlib@q3.nu
Date: 30/12/99

Tip accessed 573 times

 


It is easy using this funcion:


     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;



A call example:



      If DiskInDrive('a') then...