Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.21;
Скачать: CL | DM;

Вниз

Как получить список дисков с обозначениями.   Найти похожие ветки 

 
Nikfel ©   (2007-09-30 14:18) [0]

Подскажите пожалуйста. Как получить список дисков так ,чтобы узнать HDD,CD,DVD диски. Заранее спасибо.


 
homm ©   (2007-09-30 14:42) [1]

> с обозначениями

Что сие значит?


 
Nikfel ©   (2007-09-30 15:01) [2]

Меня интересует нечто вроде списка, как в TOpenDialog, но мне надо просто получить список устройств: дисковод дискет, DVD-R,CD-R и т.п.


 
Nikfel ©   (2007-09-30 21:33) [3]

Я имею в виду открывающийся список в компоненте TOpenDialog,а мне надо получить нечто похожее, но без отображения значков  дисков и папок, а использовать свои значки. Может кто-нибудь знает как это делается.


 
{RASkov} ©   (2007-09-30 22:53) [4]

> [3] Nikfel ©   (30.09.07 21:33)

Посмотри метод BuildList у TDriveComboBox из FileCtrl.pas


 
Юрий Зотов ©   (2007-10-01 00:59) [5]


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;


 
Германн ©   (2007-10-01 02:31) [6]


> Юрий Зотов ©   (01.10.07 00:59) [5]

Оффтоп, конечно. Но не могу не спросить.
А почему бы begin не расположить в тексте исходника сразу после "do"? Ну т.е. в той же строчке?


 
Riply ©   (2007-10-01 06:26) [7]

> [6] Германн ©   (01.10.07 02:31)
>А почему бы begin не расположить в тексте исходника сразу после "do"? Ну т.е. в той же строчке?
На вкус и цвет....
Но выскажу свое imho:
вариант
while BitMask > 0 do
begin
 //.........
end;

и понятнее( нагляднее ) и удобно искать end соответствующий begin`у (и наоборот):
просто бежишь "стрелочкой" вниз и находишь. Помогает при разборе чужих
исходников или своих старых.


 
Riply ©   (2007-10-01 06:28) [8]

P.S.
(Если не ошибаюсь)
То что ты предлагаешь, называется C-Style, а Юрий Зотов использует Standart Style.


 
begin...end ©   (2007-10-01 08:11) [9]

GetDriveType может и ноль (DRIVE_UNKNOWN) возвратить, вообще-то...


 
Nikfel ©   (2007-10-01 10:57) [10]

Спасибо за код. У меня только один вопрос остался: как-нибудь можно ли распознать дисковод DVD от дисковода СD.


 
Nikfel ©   (2007-10-01 12:22) [11]

Я нашел в реестре нужную информацию, только проблема в том как ее прочитать. Желательно бы не использовать registry.pas.
Вот нужный ключ в реестре:
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
Только тип получается reg_binary, а имена:"\DosDevices\A:","\DosDevices\C:" и т.д.
Такой тип данных читать из реестра я не разобрался, может кто-нибудь напишет Demo-код, чтоб было понятно как читать такой тип данных.


 
evvcom ©   (2007-10-01 12:26) [12]


> как-нибудь можно ли распознать дисковод DVD от дисковода СD.

как-нибудь можно. Nero ж распознает. Мало того, распознается, что конкретно может привод делать: читать CD/-DVD/+DVD, писать CD/-DVD/+DVD, LabelFlash и пр.


 
Nikfel ©   (2007-10-01 12:33) [13]

Меня интересует сам код для распознавания, а не программы способные на это.    
А программ таких полно:Nero,Total Commander и т.п.


 
Ping   (2007-10-01 12:44) [14]

Меня интересует сам код для распознавания

Напиши!


 
clickmaker ©   (2007-10-01 12:44) [15]


> [6] Германн ©   (01.10.07 02:31)

ты бы еще спросил почему в
begin
BitMask := GetLogicalDrives;

отступ в один пробел, а в

try
  while BitMask > 0 do

два
:)


 
Riply ©   (2007-10-01 12:59) [16]

> [11] Nikfel ©   (01.10.07 12:22)
>Я нашел в реестре нужную информацию, только проблема в том как ее прочитать.
>Желательно бы не использовать registry.pas.

См RegXXX - функции


 
evvcom ©   (2007-10-01 14:09) [17]


> Меня интересует сам код для распознавания

Ты вопрос задал как?

> как-нибудь можно ли

я ответил, что как-нибудь можно и привел пример того, что другие это делают. Каков вопрос - таков ответ. Как конкретно - не знаю, никогда мне это не было интересно, других дел хватает. Если бы было интересно, я б пошарился в инете на предмет распознавания типов поддерживаемых дисков приводами CD/DVD. Может в WinApi уже добавили какую функцию (XP ведь тоже что-то распознает :)), но у неро, по-моему, всегда был свой какой-то драйвер, более функциональный, да и вообще в нем уже распознавалось все это, когда Билли об этом еще и не думал.

> Я нашел в реестре нужную информацию

А ты уверен, что это то, что тебе нужно с учетом
> как-нибудь можно ли распознать дисковод DVD от дисковода СD
? В этом наверняка информации не больше, чем выдает GetDriveType



Страницы: 1 вся ветка

Текущий архив: 2007.10.21;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.02 c
2-1190619662
F@T@L_Err0r
2007-09-24 11:41
2007.10.21
TrackBar


15-1190624861
tytus
2007-09-24 13:07
2007.10.21
Delphi2007 for Win32.


8-1168288879
Jimmy
2007-01-08 23:41
2007.10.21
Аналог StretchBlt для TMetaCanvas


3-1182110534
mysql
2007-06-18 00:02
2007.10.21
regexp и кириллица в mysql


2-1190654029
Евгений Р.
2007-09-24 21:13
2007.10.21
Номер записи в tCollection