![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить есть ли дискета в дисководе [D5, Win2k]
Unknown user © (2003-02-04 20:39:00)И сделать это минуя стандартный в Win2000 dialog box -No disk -Try again, Cancel, Continue...
MARcoDEN (2003-02-06 10:19:00) [1]function DiskInDrive(const Drive: char): Boolean;
var
DrvNum: byte;
EMode: Word;
begin
result := false;
DrvNum := ord(Drive);
if DrvNum >= ord("a") then dec(DrvNum,$20);
EMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
if DiskSize(DrvNum-$40) <> -1 then result := true
else messagebeep(0);
finally
SetErrorMode(EMode);
end;
end;
...
If DiskInDrive("A") then // Drive is Ready
else // Drive is not Ready
Songoku (2003-02-05 16:23:00) [2]function IsFloppyOK(disk:char):Bool;
var f: THandle;
a: TWIN32FindData;
begin
Result:=True;
f:=FindFirstFile("A:\*.*",a);
if f=INVALID_HANDLE_VALUE then Result:=False;
Windows.FindClose(f);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if IsFloppyOK("A")=False then Caption:="Don"t work" else Caption:="Ok";
end;
Song (2003-02-04 20:43:00) [3]В FAQ