Главная страница
    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.04 c
6-1092257951
Piter
2004-08-12 00:59
2004.12.12
Посоветуйте с выбором компонента для работы с TCP


3-1100521163
Sir John
2004-11-15 15:19
2004.12.12
экспорт из SyBase


1-1101453334
hgd
2004-11-26 10:15
2004.12.12
Программа без формы


1-1101416797
Bobby Digital
2004-11-26 00:06
2004.12.12
Runtime Error


1-1101435895
Ozone
2004-11-26 05:24
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский