Вы можете использовать функцию 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;
затем используем её:
if not IsDriveReady('A') then ShowMessage('Drive Not Ready') else ShowMessage('Drive is Ready');