Вы можете использовать функцию Windows API SetErrorMode() для отключения диалога Window's critical
Error.
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;