Question:
How do I check to see if a drive is ready without triggering a
Windows error dialog box?
Answer:
You can use the Windows API function SetErrorMode() to suppress the
Window's critical Error dialog.
Example:
function IsDriveReady(DriveLetter : char) : bool;
var
 OldErrorMode : Word;
 OldDirectory : string;
begin
 OldErrorMode := SetErrorMode(SEM_NOOPENFILEERRORBOX);
 GetDir(0, OldDirectory);
 {$I-}
 ChDir(DriveLetter + ':\');
 {$I+}
 if IoResult <> 0 then
 Result := False 
 else
 Result := True;
 ChDir(OldDirectory);
 SetErrorMode(OldErrorMode);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 if not IsDriveReady('A') then
 ShowMessage('Drive Not Ready') else
 ShowMessage('Drive is Ready');
end;