Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: PeterW am Mai 28, 2015, 18:55:06

Titel: Laufwerkserkennung
Beitrag von: PeterW am Mai 28, 2015, 18:55:06
Hallo Gemeinde,
wie kann ich einen gesteckten Stick erkennen z.B. mit seinem Namen?
Titel: Re: Laufwerkserkennung
Beitrag von: MzKlMu am Mai 28, 2015, 19:19:32
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.
Titel: Re: Laufwerkserkennung
Beitrag 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.

Titel: Re: Laufwerkserkennung
Beitrag von: HB9876 am Mai 28, 2015, 21:24:26
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
Titel: Re: Laufwerkserkennung
Beitrag von: Hondo am Mai 28, 2015, 23:05:47
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