Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Seriennummer der Festplatte bzw. Diskette auslesen! (https://www.delphipraxis.net/4908-seriennummer-der-festplatte-bzw-diskette-auslesen.html)

MikeS 16. Mai 2003 14:16


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!

sakura 16. Mai 2003 14:54

Der Code sollte gehen (inkl. Tippfehlern)
Delphi-Quellcode:
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;
...:cat:...

MikeS 16. Mai 2003 17:49

alles klar!

Danke

Jens Schumann 16. Mai 2003 19:33

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.

eddy 17. Mai 2003 10:06

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

Christian Seehase 17. Mai 2003 12:40

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.

eddy 21. Mai 2003 00:31

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

Luckie 21. Mai 2003 01:18

Ich hoffe, du öffnest den Schlüssel nur lesend?

Christian Seehase 24. Mai 2003 00:06

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.

X-Dragon 14. Nov 2003 15:20

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.

Christian Seehase 14. Nov 2003 19:42

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 Hier im Forum suchenDeviceIOControl

X-Dragon 14. Nov 2003 20:29

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:
http://www.experts-exchange.com/Prog..._20681211.html


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