Hallo Gemeinde,
wie kann ich einen gesteckten Stick erkennen z.B. mit seinem Namen?
Hallo,
es gibt da einige API Funktionen. war mir alles zu kompliziert. Ich habe da eine einfache Funktion die schon über Jahre zuverlässig funktioniert.
Lege auf dem Stick eine einfache Textdatei an, ohne Inhalt. Speichere diese unter dem Namen "Test.Txt" im Stammverzeichnis des Sticks. Alternativ kannst Du auch eine bereits vorhandene Datei verwenden die auf Deinem ganzen System einmalig ist und sich nicht ändern darf. Du kannst auch den Namen des Sticks als Name für die Txt Datei verwenden.
Dann in ein Modul folgenden Code:
Public Function fncStickSuchen() As String
Dim LaufwBuchstaben As String, i As Integer
LaufwBuchstaben = "ABDFXYZ"
On Error Resume Next
For i = 1 To Len(LaufwBuchstaben)
fncStickSuchen = Dir(Mid(LaufwBuchstaben, i, 1) & ":\test.txt")
If fncStickSuchen <> "" Then
fncStickSuchen = Mid(LaufwBuchstaben, i, 1)
MsgBox "Der Stick befindet sich in Laufwerk: " & fncStickSuchen
Exit For
End If
Next i
End Function
In den String LaufwBuchstaben schreibst Du nur die Buchstaben die auch vorkommen können.
Die Funktion liefert den Laufwerksbuchstaben mit dem die Datei "Test.Txt" zu finden ist. Die Zeile mit der MsgBox kannst Du ggf. löschen.
Hallo
neben api jibbet noch wmi, welches u.U. das an- wie auch ausstecken registriert.
Anbei ne simple mdb.
Zitat von: daolix am Mai 28, 2015, 21:16:18
Hallo
neben api jibbet noch wmi, welches u.U. das an- wie auch ausstecken registriert.
Anbei ne simple mdb.
Hallo,
die Loesung gefaellt mir und funktioniert beim ersten testen wunderbar.
Gleich in mein Archiv gelegt, kann man bestimmt mal gebrauchen!
Danke dafuer
Jens
Hallo,
super Tipp, gehört doch gleich in den Downloadbereich?!
Eines noch zur Stringbildung:
Verwendet bitte bei mehrzeiligen Text das Fortsetzungszeichen _ so ist der Text besser lesbar.
Dann sieht es so aus:
With objWbemObject
Me.Text2 = "Access " & .TargetInstance.Access & vbCrLf & _
"Caption " & .TargetInstance.Caption & vbCrLf & _
"Description " & .TargetInstance.Description & vbCrLf & _
"DriveType " & .TargetInstance.DriveType & vbCrLf & _
"FileSystem " & .TargetInstance.FileSystem & vbCrLf & _
"FreeSpace " & .TargetInstance.FreeSpace / 1000000 & vbCrLf & _
"Name " & .TargetInstance.Name & vbCrLf & _
"SerialNumber " & .TargetInstance.VolumeSerialNumber & vbCrLf & _
"DeviceID " & .TargetInstance.DeviceID & vbCrLf
End With
Außerdem fehlt im Beispiel ein Stück Code um beim Entfernen des Sticks die Angaben zu löschen:
End With
case else
Me.text2 = ""
End Select
Gruß Andreas