HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 02.03.2009, 12:49
FindeR
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
С нами: 10255414

Репутация: 151
По умолчанию

Цитата:
Сообщение от Nightmarе  
Как получить список дисков в системе + полную инфу про них, файловая система, тип диска(жесткий, флешка, дисковод, сидиром) размер, метка и т.д....
?
Кинь пару кнопок и listbox
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
D:dword;
i,n:integer;

begin
D:=GetLogicalDrives;
i:= 1; n:= Ord('A');
while i > 0 do begin
 if (D and i) <> 0 then
 ListBox1.Items.Add(Chr(n));
 Inc(n);
 i:= i SHL 1;
 End;
end;
Так мы в listbox выведем все диски, которые у нас есть
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
Disk: PAnsiChar;
SerialNum: dword;
VName, FSName: array [0..255] of char;
MaxNameL,FSFlags:dword;

begin
 for i:=1 to listbox1.Items.Count-1 do begin
Disk:=PChar(listbox1.Items[i]);
if GetVolumeInformation(PChar(Disk + ':\'),
VName, SizeOf(VName),
@SerialNum, MaxNameL, FSFlags, FSName, SizeOf(FSName)) then
Showmessage('Диск:'+Disk+#13+'Файловая система: '+FSName +#13+ 'Имя тома: ' + VName + #13+ 'Максимальная длина имени файла: '+IntToStr(MaxNameL)+#13+ 'Флаги фс: '+IntToStr(FSFlags));
end;
end;
Терь пробежимся по всем дискам, показывая их свойства мессагой.

Для определения типа юзаем GetDriveType
К примеру
Код:
{функция определения типа устройства}
function GetD(Drive: String): String;
var
DType : uInt;
begin
  DType := GetDriveType(PChar(Drive));
  case DType of
    0: Result := Неизвестный';
    1: Result := 'Неверный корневой путь';
      Drive_Removable: Result := 'Съемный';
      Drive_Fixed: Result := 'Постоянный';
      Drive_Remote: Result := 'Внешний';
      Drive_CDROM: Result := 'Привод CD';
      Drive_RamDisk: Result := 'Диск RAM'
    else Result := 'хз :)';
  end;
end;

{использование функции}
...
Showmessage(GetD('A:\'));
...
Не забудь ставить :\ (:/) или : после буквы диска, синтаксис требует указывать путь к корню данного диска

Последний раз редактировалось FindeR; 02.03.2009 в 13:03..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2569 10.05.2026 13:27
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 5 (пользователей: 0 , гостей: 5)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.