|
|
|
|
Как
узнать, находится ли дискета в дисководе?
type TDriveState(DS_NO_DISK, DS_UNFORMATTED_DISK, DS_EMPTY_DISK, DS_DISK_WITH_FILES);
function DriveState(DrvLetter: Char): TDriveState;
var Mask: String[6]; SearchRec: TSearchRec; oldMode: Cardinal; ReturnCode: Integer;
begin oldMode: = SetErrorMode(SEM_FAILCRITICALERRORS); Mask:= '?:\*.*'; Mask[1] := DrvLetter; {$I-} { отключить обработку исключительных ситуаций } ReturnCode := FindFirst(Mask, faAnyfile, SearchRec); FindClose(SearchRec);
{$I+} case ReturnCode of { как минимум один файл был найден } 0: Result := DS_DISK_WITH_FILES; { файлов не найдено и дискета в порядке } -18: Result := DS_EMPTY_DISK; { DS_NO_DISK для DOS, ERROR_NOT_READY для WinNT, ERROR_PATH_NOT_FOUND для Win 3.1 } -21, -3: Result := DS_NO_DISK; else { дискета лежит в дисководе но она не форматировнная } Result := DS_UNFORMATTED_DISK; end; SetErrorMode(oldMode); end; { DriveState }
Источник:
Дельфи. Вокруг да
около.
|
Copyright ©
"Мастера DELPHI" E-mail:
delphi@mastak.com
http://www.delphimaster.ru |
Источник получения информации: http://www.delphimaster.ru
|
|