Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Определение винчестеров\дисков


Автор: HackMan 28.12.2005, 17:42
Как узнать, сколько у пользователя на компе винчестеров, и как узнать, какие локальные диски к каким вннчестерам пренадлежат?

Например, єто умеют : diskmgmt, parition magic, etc...

smile

Автор: DemoCode 28.12.2005, 18:17
Код
function DriveExists(Drive:Byte):Boolean; // Есть ли такой диск
var
  Drives: set of 0..25;
begin
  integer(Drives):=GetLogicalDrives;
  Result:=Drive in Drives
end;

function CheckDriveType(Drive: Byte): string; // Тип диска
var
  DriveLetter: Char;
  DriveType: UInt;
begin
  DriveLetter:=Chr(Drive + $41);
  DriveType:=GetDriveType(PChar(DriveLetter + ':\'));
  case DriveType of
    0:               Result:='?';
    1:               Result:='Path does not exists';
    DRIVE_REMOVABLE: Result:='Removable';
    DRIVE_FIXED:     Result:='Fixed';
    DRIVE_REMOTE:    Result:='Remote';
    DRIVE_CDROM:     Result:='CD_ROM';
    DRIVE_RAMDISK:   Result:='RAMDISK'
    else
      Result:='Unknown'
  end
end;

Автор: HackMan 28.12.2005, 18:56
DemoCode
Блин, олять вы за свооё! Мне не надо определить, что это за диск е: - флэшка или сидюк. Мне надо определить, к какому винчестеру он относится. Например, у пользователя есть 2 винчестера: Самсунг и Макстор. Первый разбит на C: и D:, а вотрой на E: F: и G:. Так вот, как мне это узнать програмно?!

Автор: DemoCode 28.12.2005, 20:00
Цитата(HackMan @ 28.12.2005, 19:56)
Блин, олять вы за свооё! Мне не надо определить, что это за диск е: - флэшка или сидюк. Мне надо определить, к какому винчестеру он относится.

Не понял сразу вопроса.
Посмотри тут пример, того что тебе надо: http://home.earthlink.net/~akonshin/files/IdeSN2.zip

Автор: HackMan 29.12.2005, 15:31
DemoCode
Огромное спасибо. Сейчас посмотрю.

Автор: HackMan 29.12.2005, 17:11
Э-эээ... Винчестеры я уже умею находить smile а как мне найти связку "винчестер - диски".
Т.е. мне надо сделать двумерный массив [1..HDD, 1..LocalDisks], или что-то типа того smile
Вопрос : как мне это сделать?

Автор: Yanis 29.12.2005, 20:29
Винчестер это тоже диск. По моему, LocalDisk = HDD.

Автор: Albinos_x 29.12.2005, 21:00
Цитата(Yanis @ 29.12.2005, 20:29)
По моему, LocalDisk = HDD.

неа.... на HDD может находиться несколько локальных дисков...

Автор: HackMan 30.12.2005, 14:46
Yanis
Нет, ты не прав.
HDD = Hard Disk Drive smile

Так всё таки, я так и не получил ответа на свой вопрос smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)