Главная страница
    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.149 c
1-1101856183
bulanov
2004-12-01 02:09
2004.12.12
Притормаживание при загрузке рисунка


14-1101378308
TUser
2004-11-25 13:25
2004.12.12
inline


1-1101882072
VAV
2004-12-01 09:21
2004.12.12
Скачивание данных и инета


14-1101115638
dDan
2004-11-22 12:27
2004.12.12
IRC клиент


14-1100918820
DelphiN!
2004-11-20 05:47
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский