Dysk fizyczny

0

Witam, szukam sposobu aby wykryć wszystkie dyski fizyczne w komputerze.
Nie chodzi mi tutaj o dyski logiczne, czyli partycje rozszerzone tylko o dyski fizyczne w komputerze. Chcę po prostu aby wątki w mojej aplikacji nie wykonywały operacji na jednym dysku w tym samym czasie.

0

znalazłem coś takiego:

//Kod pochodzi ze strony http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_21436145.html

Type
 ArraySTR = Array[0..255] Of Byte;
Const
 WhichDrv: Array[1..2] Of Word = ($A0,$B0);
Var
 NumDrv: Word Absolute $0040:$0075; { BIOS info on how many HDD you have }
 Regs: Registers;
 Data: ArraySTR;
 DataOff: Byte;
 Loop: Integer;

Function GetString(InData: ArraySTR; OffStart,OffEnd: Byte): String;
Var
 TempSTR: String;
 I: Byte;
Begin
 TempSTR:='';
 For I:=OffStart To OffEnd Do
   TempSTR:=TempSTR+Char(InData[I]);
 GetString:=TempSTR;
End;

Begin
 ClrScr;
 WriteLn('You have ',NumDrv,' Hard Disk(s).');
 For Loop:=1 to NumDrv Do
   Begin
     WriteLn('  Info on Hard Disk ',NumDrv,' is:');
     While Port[$01F7] <> $50 Do; { Wait For controller not busy }
     Port[$01F6]:=WhichDrv[Loop]; { Get first/second drive }
     Port[$01F7]:=$EC;            { Get drive info data }
     While Port[$01F7] <> $58 Do; { Wait for data ready }
     For DataOff:=0 To 255 Do     { Read "sector" }
       Data[DataOff]:=Port[$01F0];
     WriteLn('    Model Number: ',GetString(Data,27,46));
     WriteLn('    Serial Number: ',GetString(Data,10,19));
   End;
End.

zobacz też na tej stronie są jakieś darmowe komponenty które wyświetlają informacje o systemie i sprzęcie może tam coś znajdziesz

http://www.geocities.com/Heartland/Plains/3959/delphifree.htm#System

zakładka SYSTEM

// to nie Delphi, tylko Turbo Pascal, w dodatku działający pod dosem - Ł

1 użytkowników online, w tym zalogowanych: 0, gości: 1