Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Laufwerkserkennung

Begonnen von PeterW, Mai 28, 2015, 18:55:06

⏪ vorheriges - nächstes ⏩

PeterW

Hallo Gemeinde,
wie kann ich einen gesteckten Stick erkennen z.B. mit seinem Namen?
Viele Grüße aus Berlin
Peter

MzKlMu

#1
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.
Gruß Klaus

daolix

Hallo
neben api jibbet noch wmi, welches u.U. das an- wie auch ausstecken registriert.
Anbei ne simple mdb.


HB9876

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
Mit jeder Antwort komme ich weiter und lerne.<br /><br />Danke!!!

Hondo

#4
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