Попробуй пойти на хитрость. Дело в том, что при чтении (записи) с (на) дискету доступ к ней запрещен. Т.е. если сейчас происходит чтение, то твоя программа получит отказ при обращении к дисководу. Этим и можно воспользоваться. Вот пример:
| Код | // функция просто смотрит есть-ли дискета в дисководе. // в общем-то не важно что она делает // главное то, что она пытается обратится к дисководу function IsDrive(Drive: char): boolean; var SectorsPerCluster, BytesPerSector, NumberOfFreeClusters, TotalNumberOfClusters : Cardinal; begin Result := GetDiskFreeSpace(PChar(Drive+':\'), SectorsPerCluster, BytesPerSector, NumberOfFreeClusters, TotalNumberOfClusters); end;
procedure TForm1.Button1Click(Sender: TObject); begin if IsDrive('A') then ShowMessage('Дисковод свободен') else showMessage('Дисковод занят') end; | |