...überprüfen ob eine Diskette, CD-ROM eingelegt ist?

Autor: Simon Grossenbacher
Homepage: http://www.swissdelphicenter.ch

Kategorie: Sonstiges

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;

 

printed from
www.swissdelphicenter.ch
developers knowledge base