Форум: "WinAPI";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизКак определить есть ли диск в приводе? Найти похожие ветки
← →
Кириешки © (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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.034 c