Главная страница
    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.57 MB
Время: 0.052 c
14-1100999523
olookin
2004-11-21 04:12
2004.12.12
Когда в Вашем городе начинает ходить общ. транспорт?


1-1101630374
UVV
2004-11-28 11:26
2004.12.12
GetTime


6-1096627357
Вован
2004-10-01 14:42
2004.12.12
Имена сетевых компов


14-1101280576
ИМХО
2004-11-24 10:16
2004.12.12
Для чего создана музыка: чтобы СЛУШАТЬ или чтобы ТАНЦЕВАТЬ?


14-1101333145
Труп Васи Доброго
2004-11-25 00:52
2004.12.12
Citrix





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский