![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как проверить наличие дискеты в дисководе [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('!');
Если дискеты нет - пользователь будет обрадован радостным окошком об этом.