Mega Code Archive

 
Categories / Delphi / Hardware
 

How to check if a disk is in the drive

Title: How to check if a disk is in the drive function DiskInDrive(Drive: Char): Boolean; // Disk can be a floppy, CD-ROM,... var ErrorMode: Word; begin { make it upper case } if Drive in ['a'..'z'] then Dec(Drive, $20); { make sure it's a letter } if not (Drive in ['A'..'Z']) then raise EConvertError.Create('Not a valid drive ID'); { turn off critical errors } ErrorMode := SetErrorMode(SEM_FailCriticalErrors); try { drive 1 = a, 2 = b, 3 = c, etc. } if DiskSize(Ord(Drive) - $40) = -1 then Result := False else Result := True; finally { Restore old error mode } SetErrorMode(ErrorMode); end; end; procedure TForm1.Button1Click(Sender: TObject); begin if DiskInDrive('a') = False then ShowMessage('Drive not ready'); end;