Показать сообщение отдельно
  #14  
Старый 25.01.2011, 12:59
ShenZN ShenZN вне форума
Прохожий
 
Регистрация: 10.01.2011
Сообщения: 5
Репутация: 10
Радость

Огромное спасибо всем, за ответы!

Вот что было в итоге найдено и обработано из просторов Интернета:

Чтобы увидеть какие в системе вообще подключены физические диски их номер (PHISYCALDRIVE+n), можно воспользоваться такой функцией:

Код:
procedure TForm1.Button18Click(Sender: TObject);
var
  i: Integer;
  NewMenu: TMenuItem;
  PI: TPartInfo;
  PhysicalDrives: TPhysicalDrives;
begin
  GetDrivesInfo(PhysicalDrives);
  for i := 0 to High(PhysicalDrives) do
  begin
    Label42.Caption:=Label42.Caption+'Диск '+ IntToStr(i);
    Label42.Caption:=Label42.Caption+' '+IntToStr(PhysicalDrives[i].PartitionTable[i].NumberOfSects);
  end;

end;

Чтобы заработало нужно подключить библиотеку llinfo, взятую из проекта

Самое главное:
ПОМОГЛА ВОЛШЕБНАЯ БИБЛИОТЕКА Компонентов GLibWMI
У которой огромные возможности по считыванию всех данных о системе в целом. В частности о физических дисках(Номер PHISYCALDRIVE, размер, количество секторов, серийный номер, интерфейс подключения и другие параметры). В архиве идут примеры по которым можно разобраться что к чему.


PS. Вопрос остался открытым:
Каким образом конкретный PHISYCALDRIVE относится к конкретной букве устройства (например PHICALDRIVE1 -> диск F) . Если кто то владеет информацией напишите пожалуйста примерчик или дайте ссылку для решения данной проблемы.

Огромное Спасибо!
Ответить с цитированием