Вниз
Скачать: CL | DM;

Как определить есть ли диск в приводе?   Найти похожие ветки 

← →
Кириешки ©   (2004-10-30 13:26) [0]

Полечаю буквы СD приводов, затем их названия, а вот как определить есть ли в приводе диск не знаю. Подскажите плийз.


← →
ssk ©   (2004-10-30 13:45) [1]

как вариант: прочитать серийный номер. если что-то есть, значит диск есть:

function DiscInDrive(D: char): boolean;
var
 VolumeName, FileSystemName : array [0..MAX_PATH-1] of Char;
 VolumeSerialNo : DWord;
 MaxComponentLength, FileSystemFlags : Cardinal;
begin
 GetVolumeInformation(PAnsiChar(D + ":\"), VolumeName, MAX_PATH,
                      @VolumeSerialNo, MaxComponentLength, FileSystemFlags,
                      FileSystemName, MAX_PATH);
 Result := VolumeSerialNo <> 0;
end;


функция не работает с чистыми болванками и стертыми RW


← →
SSSdd   (2004-10-30 14:24) [2]

ssk © спасибо.


← →
Кириешки ©   (2004-10-30 14:26) [3]

ssk
Спасибо.


← →
grom   (2004-10-30 16:05) [4]

>Полечаю буквы СD приводов, затем их названия,
Полечаю буквы СD приводов - это просто.
затем их названия - А вот зто как раз меня интересует.
Каким оразом ты получаешь названия СD приводов.
Подскажи если можно.


← →
abc   (2004-10-30 16:12) [5]

>есть ли в приводе диск
{Если диск существует/вставлен ...}
 if GetHDDInfo(S[I], VolumeName, FileSystemName, VolumeSerialNo,
               MaxComponentLength, FileSystemFlags) then {... тогда собираем информацию}

http://delphibase.endimus.ru/?action=viewfunc&topic=harddisk&id=10139


← →
OSokin ©   (2004-10-30 17:08) [6]

Третий топик, на который я отвечаю одним и тем же (почти) ответом... Модераторы, вы удаляйте сообщения хоть лишь двухмесячной давности, а то люди посмотреть на них не могут...
И вообще, это уже пора заносить в FAQ

Чтобы проверить, находится ли диск в приводе, нужно использовать функцию "GetDiskFreeSpace(pchar(disk+":\"),a,a,a,a);", где "disk" - это название диска, а "a" - переменная типа cardinal. Если функция возвращает false, то диска в приводе нет.


← →
abc   (2004-10-30 18:54) [7]

var
q,e:array[0..MAX_PATH-1]of Char;
m:Cardinal;
begin
if GetVolumeInformation(PChar("d:\"),q,MAX_PATH,@m,m,m,e,MAX_PATH)then ...
                                                                 else ...

GetVolumeInformation в оличии GetDiskFreeSpace не дает ошибки при извлечении диска из привода.


← →
Петрук Игорь   (2004-10-31 09:22) [8]

Функция FindFirst возвращает некоторое значение если отсутствует диск в приводе. В справке по этой можно найти это значение. Если отсутствует диск, то появляется сообщение об ошибке. При выполнении функции обработку исключений лучше отключить. А ты Кириешки случайно не из Кременчуга.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.022 c
14-1100856519
dr Tr0jan
2004-11-19 12:28
2004.12.12
Игрушка на Pascal, Delphi


14-1101190317
Rand
2004-11-23 09:11
2004.12.12
Оригинальные кнопочки!


4-1098692188
Роман
2004-10-25 12:16
2004.12.12
Удаленное управление


14-1100851367
truster
2004-11-19 11:02
2004.12.12
Распаковка ZIPа в Far-e


8-1093948946
Сашок
2004-08-31 14:42
2004.12.12
Отступ от точек




   Наверх