Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как проверить наличие дискеты в дисководе [D6]


you ©   (2004-04-28 08:12:00) 

Подскажите, как проверить наличие дискеты в дисководе? Заранее благодарю!!!


GH@ST   (2004-04-28 12:09:00) [1]

function DiskInDrive(const Drive: char): Boolean;
var
DrvNum:byte;
EMode:Word;
begin
result:=true;
DrvNum:=ord(Drive);
if DrvNum>=ord(Manform.DriveComboBox1.Drive) then dec(DrvNum,$20);
EMode:= SetErrorMode(SEM_FAILCRITICALERRORS);
try
while DiskSize(DrvNum-$40)=-1 do
 begin
 Result:=false;
 Break;
 end;
finally
SetErrorMode(EMode);
end;
end;


GH@ST   (2004-04-28 12:04:00) [2]

function DiskInDrive(const Drive: char): Boolean;
var
DrvNum:byte;
EMode:Word;
begin
result:=true;
DrvNum:=ord(Drive);
if DrvNum>=ord(Manform.DriveComboBox1.Drive) then dec(DrvNum,$20);
EMode:= SetErrorMode(SEM_FAILCRITICALERRORS);
try
while DiskSize(DrvNum-$40)=-1 do
 begin
 Result:=false;
 Break;
 end;
finally
SetErrorMode(EMode);
end;
end;


you   (2004-04-28 08:58:00) [3]

всем спасибо, буду пробовать


TUser   (2004-04-28 08:48:00) [4]

Точно не уверен, но возможно поможет SHBrowseForFolder.


MBo   (2004-04-28 08:45:00) [5]

SetErrorMode SEM_FAILCRITICALERRORS


you   (2004-04-28 08:43:00) [6]

у меня все равно сначала ошибка винды выскакивает, что дискеты в дисководе нет. как ее убрать?


you   (2004-04-28 08:39:00) [7]

а...сэнкс


TUser   (2004-04-28 08:32:00) [8]

if DirectoryExists('a:\') then
  showMessage('!');

Если дискеты нет - пользователь будет обрадован радостным окошком об этом.


Наверх

Титульная страница Поиск, карта сайта Написать письмо