![]() |
Seriennummer der Festplatte bzw. Diskette auslesen!
Moin
Hab da mal ne frage zu GetVolumeInformation! das mit dem Befehl hab ich verstanden! mich interresiert jetzt wie kann ich die seriennummer ausgeben? hab das problem das dort immer eine null zu sehen ist! |
Der Code sollte gehen (inkl. Tippfehlern)
Delphi-Quellcode:
...:cat:...
procedure TForm1.Button1OnClick(Sender: TObject);
var Root: array[0..20] of Char; FileSysName, VolName: array[0..255] of Char; SerialNum, MaxCLength, FileSysFlag: DWORD; begin Root := 'C:\'; GetVolumeInformation(Root, VolName, 255, @SerialNumber, MaxCLength, FileSysFlag, FileSysName, 255); Label1.Caption := IntToHex(SerialNum, 8); end; |
alles klar!
Danke |
Hallo,
Achtung: Mit GetVolumeInformation erhälst Du die logische Seriennummer der Platte. Diese Nummer wird beim formattieren der Platte vom OS vergeben. Nach jeder Formattierung ändert sich diese Nummer. Daraus folgt, diese Seriennummer hat nichts mit der Serienummer zu tun, die der Hersteller vergibt. |
Hallo Jens!
Dieser Hinweis hat mir gefehlt. :idea: Ich hab' schon gedacht, daß es mit den großen Platten nicht funktioniert, weil ich ja für jede Partition einen anderen Wert erhalte. Weiß jemand, wie man die vom Hersteller vergebene Serien-Nummer einer Festplatte auslesen kann? mfg eddy |
Moin eddy,
unter Windows 2000 (wahrscheinlich auch XP, eventuell NT) sollte man dies für IDE Platten aus der Registry auslesen können. Unter HKLM\SYSTEM\CurrentControlSet\Enum\IDE stehen die Keys der IDE Festplatten. Der Name des Keys endet, zumindest bei Festplatten, mit der Seriennummer. Schau's Dir am Bestem mal selber an. |
Hallo Christian,
vielen Dank für den Tip. (Habe erst heute wieder Zeit gefunden, im Forum zu stöbern.) Unter Win98 SE habe ich in der Registry die SN nicht gefunden, unter Win2000 war ich dank Deines Hinweises etwas erfolgreicher. Unter HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Enum/IDE habe ich den Eintrag gefunden. mfg eddy |
Ich hoffe, du öffnest den Schlüssel nur lesend?
|
Moin eddy,
wichtig ist den Key unter CurrentControlSet zu nehmen. ControlSet00x ist nur ein Profil, das mal gelaufen ist, Current ist das aktuell aktive Profil. |
Re: Seriennummer der Festplatte bzw. Diskette auslesen!
Gibts nicht auch eine Möglichkeit die Seriennummer direkt auszulesen? da sie sonst immer wo anders in der Registry(je nach Betriebsystem) zu finden ist und evtl manipuliert werden kann.
|
Re: Seriennummer der Festplatte bzw. Diskette auslesen!
Moin X-Dragon,
auch wenn das jetzt keine Lösung des Problems ist: Geben muss es diese Möglichkeit auf jeden Fall, denn sonst könnte Windows die Daten ja auch nicht in die Registry eintragen. Ist halt u.A. die Frage zu welchem Zeitpunkt die Daten ausgelesen werden. Eventuell könntest Du da Informationen im DDK oder auch MSDN finden. Stichwort ![]() |
Re: Seriennummer der Festplatte bzw. Diskette auslesen!
Super danke für das Stichwort, da hab ich ja zumindest schon mal einen guten Ansatzpunkt. Im MSDN hatte ich schon nachgeschaut, aber nicht die richtige Kategorie gefunden.
Evtl. hab ich hier eine Lösung gefunden, aber das muss ich erstmal in Ruhe verarbeiten da die Lösungen nur in C und VB vorliegen: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:25 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 by Thomas Breitkreuz