HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
 
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 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 2568 25.04.2026 12:58
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



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


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




ANTICHAT.XYZ