![]() |
Partitionen auf einer Festplatte
Ich bin gerade an meinem nächsten Projekt. Es geht um ein Tool welches Informationen über die Festplatte liefert.
Mit folgendem Code (ich poste ihn einfach mal, eventuell such ja jemand so was):
Delphi-Quellcode:
bekomme ich schon mal alle Infos über die Festplatte. Nur wie bekomme ich jetzt die Partitionen, die auf selbiger liegen, um mit GetVolumenInformation deren Infos auszulesen?
uses JwaWinIoctl;
procedure TForm1.FormCreate(Sender: TObject); var i : Integer; Device : String; dg : DISK_GEOMETRY; hDevice : Cardinal; dummy : DWORD; begin for i := 0 to 9 do begin Device := '\\.\PhysicalDrive'+IntToStr(i); hDevice := CreateFile(pointer(Device), 0, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0); if hDevice <> INVALID_HANDLE_VALUE then begin DeviceIOControl(hDevice, IOCTL_DISK_GET_DRIVE_GEOMETRY, nil, 0, @dg, sizeof(dg), dummy, nil); Memo1.Lines.Add('HDD'+IntToStr(i)+':'); Memo1.Lines.Add('========='); Memo1.Lines.Add('Zylinder : '+IntToStr(dg.Cylinders.QuadPart)); Memo1.Lines.Add('Spuren pro Zylinder : '+IntToStr(dg.TracksPerCylinder)); Memo1.Lines.Add('Sektoren pro Spur : '+IntToStr(dg.SectorsPerTrack)); Memo1.Lines.Add('Bytes pro Sektor : '+IntToStr(dg.BytesPerSector)); Memo1.Lines.Add('Kapazität : '+IntToStr(dg.Cylinders.QuadPart*dg.TracksPerCylinder*dg.SectorsPerTrack*dg.BytesPerSector)+ ' (Bytes)'); Memo1.Lines.Add(''); end; end; end; Ich kann zwar eine Schleife von c bis z laufen lassen und bekomme so alle Laufwerke, nur weiß ich dann immer noch nicht welches Laufwerk, auf welcher Festplatte liegt. Wer kann Trost und Rat spenden? |
Re: Partitionen auf einer Festplatte
Zitat:
Grüsse, Daniel :hi: |
Re: Partitionen auf einer Festplatte
Zitat:
Folgende Konstellation:
Code:
So, mit obigen Code bekomme ich die Anzahl der HDD's, mit GetVolumeInformation die Laufwerke c bis g. Aber woher weiß ich jetzt, dass c, d und e auf HDD1 liegen und f und g auf HDD2?
HDD1:
c, d, e HDD2: f, g Schön ich bekomme zwar die Seriennummern der Laufwerke, aber mit was soll ich die jetzt deiner Meinung vergleichen? S/N c <> S/N d <> S/N e <> S/N f <> S/N g Das hilft mir also auch nicht weiter. |
Guten Morgen, Luckie,
für WinNT ff. hätte ich folgenden Link zu bieten: ![]() Zitat:
|
Das war es nicht. Aber ich habe da ein anderes Programm gefunden, was genau das leifert, was ich brauche:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz