Hey, da ich kein Tutorial gefunden habe, wie man USB-Sticks u.ä. die an den PC gesteckt werden erkennt, wollte ich mal ein kleines Tutorial dazu schreiben.
Ich mache das Beispiel jetzt, wie ihr die Serialnummer eines USB-Sticks rausfindet.
Dann fangen wir mal an:
Wir erstellen uns eine WinForm Anwendung.
Als erstes setzt ihr dann einen Verweis auf;
System.Management (befindet sich unter .NET bei Verweise)
Anschliessend gebt ihr oben als erstes halt ein:
Nun erstellen wir eine neue Klasse,
Die Prozedur wird dort später eingetragen, damit bei einer neuen Instanz von "USBFinder", die Prozedur die die Seriennummer findet, ausgelöst wird und Wir nicht extra noch die Prozedur auslösen und den Wert abfragen müssen.
Anschliessend erstellen wir eine Variable worin sich die Seriennummer befinden wird und dazu noch eine Readonly Property - da wir die Variable klassenübergreifend verwenden möchten.
Nun gehts um die Prozedur, wo wir die Seriennummer rausfinden. Diese ist eigentlich nicht besonders lang:
Das "Serialnumber" steht, wie schon viele vermutet hätten, für die Seriennummer. Das Try-catch wird benötigt, da falls kein Objekt gefunden (Kein Stick) wird eine Managementobjectexception geworfen wird, die wir mit deren Hilfe auffangen. Eine Auflistung welche Attribute man damit noch finden kann gibt es in der MSDN:
[Only registered and activated users can see links. Click Here To Register...]
Da wir jetzt die Prozedur zum herausfinden der Seriennummer haben, müssen wir nurnoch hier die Prozedur eintragen:
und nun brauchen wir nur noch eine neue Instanz von "USBFinder" zu erstellen und die Seriennummer abzurufen.
Der ganze Code sieht dann so aus:
Auch wenn das kein großes Tutorial war, hats hoffentlich manchen geholfen.
Ich mache das Beispiel jetzt, wie ihr die Serialnummer eines USB-Sticks rausfindet.
Dann fangen wir mal an:
Wir erstellen uns eine WinForm Anwendung.
Als erstes setzt ihr dann einen Verweis auf;
System.Management (befindet sich unter .NET bei Verweise)
Anschliessend gebt ihr oben als erstes halt ein:
Code:
Imports System.Management
Die Prozedur wird dort später eingetragen, damit bei einer neuen Instanz von "USBFinder", die Prozedur die die Seriennummer findet, ausgelöst wird und Wir nicht extra noch die Prozedur auslösen und den Wert abfragen müssen.
Code:
Public Class USBFinder
Public Sub New()
End Sub
Code:
Private Serialnumber_ As String
Public ReadOnly Property Serialnumber As String
Get
Return Serialnumber_
End Get
End Property
Code:
Private Sub FindSerialnumb()
Try
Dim Objsrch As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'")
For Each WMIObject As ManagementObject In Objsrch.Get
Serialnumber_ = WMIObject("Serialnumber").ToString
Next
Catch ex As ManagementException
Return
End Try
End Sub
[Only registered and activated users can see links. Click Here To Register...]
Da wir jetzt die Prozedur zum herausfinden der Seriennummer haben, müssen wir nurnoch hier die Prozedur eintragen:
Code:
Public Sub New()
Me.FindSerialnumb()
End Sub
Code:
Public Class BasisClass
Private test As New USBFinder
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
MessageBox.Show(test.Serialnumber)
End Sub
End Class
Code:
Imports System.Management
Public Class BasisClass
Private test As New USBFinder
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
MessageBox.Show(test.Serialnumber)
End Sub
End Class
Public Class USBFinder
Public Sub New()
Me.FindSerialnumb()
End Sub
Private Serialnumber_ As String
Public ReadOnly Property Serialnumber As String
Get
Return Serialnumber_
End Get
End Property
Private Sub FindSerialnumb()
Try
Dim Objsrch As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive WHERE InterfaceType='USB'")
For Each WMIObject As ManagementObject In Objsrch.Get
Serialnumber_ = WMIObject("Serialnumber").ToString
Next
Catch ex As ManagementException
Return
End Try
End Sub
End Class