Главная страница | назад





Article #17378: Checking drive ready status.

 Question and Answer Database

FAQ2378D.txt   Checking drive ready status.
Category   :Windows API
Platform    :All
Product    :All 32 bit  

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;


7/16/98 4:31:28 PM
 

Last Modified: 01-SEP-99