Mega Code Archive

 
Categories / Delphi / API
 

Checking drive ready status

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;