- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
Function DiskInDrive(ADriveLetter : Char) : Boolean;
var
SectorsPerCluster,
BytesPerSector,
NumberOfFreeClusters,
TotalNumberOfClusters : Cardinal;
begin
Result := GetDiskFreeSpace(PChar(ADriveLetter+':\'),
SectorsPerCluster,
BytesPerSector,
NumberOfFreeClusters,
TotalNumberOfClusters);
end;
// еще один шедевр:
var
SR : TSearchRec;
Res : integer;
OldErrMode : integer;
begin
// Запоминаем текущий режим обработки ошибок и устанавливаем SEM_FAILCRITICALERRORS
// Это необходимо для подавления появления окна с сообщение о том, что устройство не готово
OldErrMode = SetErrorMode(SEM_FAILCRITICALERRORS);
try
Res := FindFirst('a:\*.*', faAnyfile, SR);
FindClose(SR);
finally
SetErrorMode(OldErrMode)
end;
end;
С помощью этих процедур Олежик Зайцев на своем сайте предлагает определять доступность дисков, минуя сообщение WINDOWS "Диск не готов".
Без комментариев.