Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.039 c
1-1101899743
Islander
2004-12-01 14:15
2004.12.12
Как определить, что содержимое папки изменилось?


14-1100855778
WondeRu
2004-11-19 12:16
2004.12.12
Откуп от армии VS. Аспирантура


1-1101681650
che
2004-11-29 01:40
2004.12.12
PaintBox..


6-1096735381
Хтз
2004-10-02 20:43
2004.12.12
Как включить или выключить сетвевой интерфейс???


3-1100069354
first_may
2004-11-10 09:49
2004.12.12
Ошибка...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский