Р а з д е л ы
Новости
Гостевая
Форум
Чат
Учебники
Программы
Статьи по Delphi
Статьи по Html
Компьютерные статьи
Java скрипты
Приколы
Отправить SMS
Мои разработки
 
К о н т а к т ы

ICQ: 445511525
e-mail: ZORBI@bk.ru

c o p y r i g h t
p r o g r a m m i n g
d e s i g n e d
by ZORBI

Т р о и ц к   г

 
С с ы л к и


 
С ч е т ч и к и
Rambler's Top100
 
..:: Статьи ::..
Как узнать, находится ли дискета в дисководе

   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 }
	             		
Hosted by uCoz