Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0059: Seriennummer eines Datenträgers ermitteln

 von 

Beschreibung 

Hiermit läßt sich die Seriennummer eines beliebigen Datenträgers und im speziellen einer eingelegten CD auslesen.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

GetVolumeInformationA (GetVolumeInformation)

Download:

Download des Beispielprojektes [2,18 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Beschriftungsfeld "Label1"

Option Explicit

Private Declare Function GetVolumeInformation Lib "kernel32" _
        Alias "GetVolumeInformationA" (ByVal lpRootPathName _
        As String, ByVal pVolumeNameBuffer As String, ByVal _
        nVolumeNameSize As Long, lpVolumeSerialNumber As Long, _
        lpMaximumComponentLength As Long, lpFileSystemFlags As _
        Long, ByVal lpFileSystemNameBuffer As String, ByVal _
        nFileSystemNameSize As Long) As Long

Const MAX_FILENAME_LEN As Long = 256&

Private Sub Command1_Click()
    Label1.Caption = SerNum("c")
End Sub

Public Function SerNum(Drive$) As Long
    Dim No As Long, s As String * MAX_FILENAME_LEN
    
    Call GetVolumeInformation(Drive & ":\", s, MAX_FILENAME_LEN, _
                              No, 0&, 0&, s, MAX_FILENAME_LEN)
    SerNum = No
End Function

Private Sub Form_Load()
    Command1.Caption = "Seriennummer auslesen"
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 11 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Roland am 26.08.2008 um 10:38

Hallo!

Ich suche schon seit längerem nach einer Möglichkeit diese Festplattenkennung Softwaretechnisch zu ändern.

Ich habe einen Kopierschutz geschrieben, der auf die Seriennummer von Laufwerk C: aufbaut. Möchte nun ein Kunde einen anderen Rechner aktivieren, so muss ich die Softwarelizenz auf dem aktuellen Rechner deaktivieren. Das geht am einfachsten indem ich die Festplattenkennung (Seriennummer) ändere ...

Hat jemand von Euch einen Tip wie ich das hinbekomme?
Antworten bitte an info@bonit.at

Kommentar von Rick-VB am 22.02.2005 um 11:50

Bei mir gibt die Funktion bei der Festplatte immer 0 zurück :-(
(Win XP Pro SP1 alle Updates)

Kommentar von MaxTheCB am 13.01.2005 um 15:09

Hallo,
Würde dieses auch mit einem USB Stick funktionieren ?

Kommentar von Adler am 08.06.2003 um 13:48

mh,
ich weiß dien net anzuwenden.
also, wie bekomme ich meine serien nummer?
wie brenn ich die auf CD?
kann ich einen eigenen key nehmen, für die CD oder macht der das selbst?

ich kenn mich da net mal so aus ^^

Kommentar von Andreas Schmitt am 10.03.2003 um 22:13

@ssnoopy: rechne das ganze in Hex um dann haste die Datenträger-Seriennummer die beim Formatieren vergeben wird.

Kommentar von Thorsten Ahlert am 04.02.2003 um 18:32

Gibt es auch eine Möglichkeit auf eine
Diskette eine Seriennummer zu schreiben?

( VB 6.0 )

Kommentar von ssnoopy am 21.10.2002 um 20:14

das oben gezeigt beispiel ist leider nicht die Seriennumer des Datenträgers.
Bei diem Beispiel ändert sich diese nummer nach dem Formatieren.
die echte seriennummer der Festplatte bleibt hingegen auch nach einem Format bestehen.

Kommentar von hö? am 07.08.2002 um 21:12

was ist denn an einer Seriennumer des Datenträgers strafrechtlich bedenklich?!?!?
also meiner heisst AF-D00f. Komm ich jetzt ins Gefängnis?

Kommentar von Florian R. am 01.02.2002 um 17:08

Achtung, wer an dieser Stelle nach Seriennummern fragt, sollte sich bewußt sein, dass dies strafrechtliche Konsequenzen nach sich ziehen kann.
Mfg Florian R.
--------------
ActiveVB.de Organisation

Kommentar von Götz Reinecke am 28.02.2001 um 20:31

Hallo Phillip,
sicherlich, allerdings muß das FSO auch auf dem entsprechenden Rechner installiert sein. Dies ist längst nicht immer der Fall. Zudem deshalb bei der Weitergabe eine dlls, soviel ich weiß, des IEs mitzuliefern. Gerade dies kann rechtlich problematisch werden, da der IE nur am Stück und nicht teileweise weitergegeben werden darf. Heißt also für das FSO sind 20MB vorzusehen.
Grüße
Götz

Kommentar von Philipp Stephani am 28.02.2001 um 18:39

Funktioniert das nicht auch einfacher mit dem FileSystemObject?