![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить список дисков с обозначениями. [D7]
Nikfel © (2007-09-30 14:18:00)Подскажите пожалуйста. Как получить список дисков так ,чтобы узнать HDD,CD,DVD диски. Заранее спасибо.
evvcom (2007-10-01 14:09:00) [1]
> Меня интересует сам код для распознавания
Ты вопрос задал как?
> как-нибудь можно ли
я ответил, что как-нибудь можно и привел пример того, что другие это делают. Каков вопрос - таков ответ. Как конкретно - не знаю, никогда мне это не было интересно, других дел хватает. Если бы было интересно, я б пошарился в инете на предмет распознавания типов поддерживаемых дисков приводами CD/DVD. Может в WinApi уже добавили какую функцию (XP ведь тоже что-то распознает :)), но у неро, по-моему, всегда был свой какой-то драйвер, более функциональный, да и вообще в нем уже распознавалось все это, когда Билли об этом еще и не думал.
> Я нашел в реестре нужную информацию
А ты уверен, что это то, что тебе нужно с учетом
> как-нибудь можно ли распознать дисковод DVD от дисковода СD
? В этом наверняка информации не больше, чем выдает GetDriveType
Riply (2007-10-01 12:59:00) [2]> [11] Nikfel © (01.10.07 12:22)
>Я нашел в реестре нужную информацию, только проблема в том как ее прочитать.
>Желательно бы не использовать registry.pas.
См RegXXX - функции
clickmaker (2007-10-01 12:44:00) [3]
> [6] Германн © (01.10.07 02:31)
ты бы еще спросил почему в
begin
BitMask := GetLogicalDrives;
отступ в один пробел, а в
try
while BitMask > 0 do
два
:)
Ping (2007-10-01 12:44:00) [4]Меня интересует сам код для распознавания
Напиши!
Nikfel (2007-10-01 12:33:00) [5]Меня интересует сам код для распознавания, а не программы способные на это.
А программ таких полно:Nero,Total Commander и т.п.
evvcom (2007-10-01 12:26:00) [6]
> как-нибудь можно ли распознать дисковод DVD от дисковода СD.
как-нибудь можно. Nero ж распознает. Мало того, распознается, что конкретно может привод делать: читать CD/-DVD/+DVD, писать CD/-DVD/+DVD, LabelFlash и пр.
Nikfel (2007-10-01 12:22:00) [7]Я нашел в реестре нужную информацию, только проблема в том как ее прочитать. Желательно бы не использовать registry.pas.
Вот нужный ключ в реестре:
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
Только тип получается reg_binary, а имена:"\DosDevices\A:","\DosDevices\C:" и т.д.
Такой тип данных читать из реестра я не разобрался, может кто-нибудь напишет Demo-код, чтоб было понятно как читать такой тип данных.
Nikfel (2007-10-01 10:57:00) [8]Спасибо за код. У меня только один вопрос остался: как-нибудь можно ли распознать дисковод DVD от дисковода СD.
begin...end (2007-10-01 08:11:00) [9]GetDriveType может и ноль (DRIVE_UNKNOWN) возвратить, вообще-то...
Riply (2007-10-01 06:28:00) [10]P.S.
(Если не ошибаюсь)
То что ты предлагаешь, называется C-Style, а Юрий Зотов использует Standart Style.
Riply (2007-10-01 06:26:00) [11]> [6] Германн © (01.10.07 02:31)
>А почему бы begin не расположить в тексте исходника сразу после "do"? Ну т.е. в той же строчке?
На вкус и цвет....
Но выскажу свое imho:
вариант
while BitMask > 0 do
begin
//.........
end;
и понятнее( нагляднее ) и удобно искать end соответствующий begin`у (и наоборот):
просто бежишь "стрелочкой" вниз и находишь. Помогает при разборе чужих
исходников или своих старых.
Германн (2007-10-01 02:31:00) [12]
> Юрий Зотов © (01.10.07 00:59) [5]
Оффтоп, конечно. Но не могу не спросить.
А почему бы begin не расположить в тексте исходника сразу после "do"? Ну т.е. в той же строчке?
Юрий Зотов (2007-10-01 00:59:00) [13]
procedure TForm1.FormCreate(Sender: TObject);
const
DiskTypes: array [DRIVE_REMOVABLE..DRIVE_RAMDISK] of string =
('Сменный', 'Жесткий', 'Сетевой', 'Лазерный', 'Виртуальный');
var
BitMask: integer;
DiskChar: char;
begin
BitMask := GetLogicalDrives;
DiskChar := 'A';
with TStringList.Create do
try
while BitMask > 0 do
begin
if BitMask and 1 = 1 then
Add(DiskChar + ' - ' + DiskTypes[GetDriveType(PChar(DiskChar + ':\'))]);
Inc(DiskChar);
BitMask := BitMask shr 1;
end;
ShowMessage(Text)
finally
Free
end
end;
{RASkov} (2007-09-30 22:53:00) [14]> [3] Nikfel © (30.09.07 21:33)
Посмотри метод BuildList у TDriveComboBox из FileCtrl.pas
Nikfel (2007-09-30 21:33:00) [15]Я имею в виду открывающийся список в компоненте TOpenDialog,а мне надо получить нечто похожее, но без отображения значков дисков и папок, а использовать свои значки. Может кто-нибудь знает как это делается.
Nikfel (2007-09-30 15:01:00) [16]Меня интересует нечто вроде списка, как в TOpenDialog, но мне надо просто получить список устройств: дисковод дискет, DVD-R,CD-R и т.п.
homm (2007-09-30 14:42:00) [17]> с обозначениями
Что сие значит?