Как проверить готовность диска без появления окна ошибки Windows в Delphi?

Вы можете использовать функцию 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; 
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (11 оценок, среднее: 4,91 из 5)
Загрузка...
Добавить комментарий