1 1 1 1 1 1 1 1 1 1 Rating 5.00 (1 Vote)

Problemstellung:

Wie kann man unter Windows mittels API ein virtuelles Laufwerk erstellen? 

Public Declare Function DefineDosDevice Lib "kernel32.dll" Alias _
       "DefineDosDeviceA" (ByVal dwFlags As Long, _
       ByVal lpDeviceName As String, _
       Optional ByVal lpTargetPath As String = vbNullString) As Long
       
Public Enum DefintionTyp
    Create_LW = &H0
    Remove_LW = &H2
End Enum

Public Function Virtuelles_LW(lngLW_Typ As DefintionTyp, sNewLW As String, _
                Optional sTargetPath As String = vbNullString) As Integer
'---------------------------------------------------------------------------------------
' Procedure : Virtuelles_LW
' DateTime  : 29.01.2007 15:14
' Author    : TommyK
'---------------------------------------------------------------------------------------
    Dim iResult As Integer
    On Error GoTo Virtuelles_LW_Error
    If Right(sTargetPath, 1) <> "" Then sTargetPath = sTargetPath & ""
    iResult = DefineDosDevice(lngLW_Typ, sNewLW, sTargetPath)
    Virtuelles_LW = iResult
    On Error GoTo 0
    Exit Function
Virtuelles_LW_Error:
    Dim strErrString As String
    strErrString = "Error Information..." & vbCrLf
    strErrString = strErrString & "Error#: " & Err.Number & vbCrLf
    strErrString = strErrString & "Description: " & Err.Description
    MsgBox strErrString, vbCritical + vbOKOnly, "Error in Function Virtuelles_LW"
End Function
Die Funktion hat 3 Parameter
1. lngLW_Typ
Durch die Enum-Auflistung definiert
Create_LW=LW erstellen
Remove_LW=LW löschen

2. sNewLW
Der LW-Buchstabe der erstellt bzw. gelöscht werden soll

3. sTargetPath
optionaler Parameter
Bei der Erstellung wird der Pfad angegeben der den neuen LW-Buchstaben darstellen soll.
Bei Löschung eines LW bleibt der Parameter leer.

Eine Löschung ist nicht unbedingt erforderlich, da das LW nach einem Neustart
automatisch gelöscht sind.

Die Funktion gibt einen Wert zurück der aussagt ob die Operation gelungen ist oder nicht.

0=LW konnte nicht erstellt werden
1=LW ohne Fehler erstellt
Aufruf:
Für das Verzeichnis "D:\users\h3wnjtyv\Test" soll das neue LW "G:" erstellt werden.
If Virtuelles_LW(Create_LW, "G:", "D:\users\h3wnjtyv\Test") = 1 Then
   MsgBox "LW wurde erstellt!", vbInformation + vbOKOnly, "Erfolg"
Else
   MsgBox "LW konnte nicht erstellt werden!", vbCritical + vbOKOnly, "Fehler!"
End If 

Um das LW zu löschen:

If Virtuelles_LW(Remove_LW, "G:") = 1 Then
    MsgBox "LW wurde gelöscht!", vbInformation + vbOKOnly, "Erfolg"
Else
    MsgBox "LW konnte nicht gelöscht werden!", vbCritical + vbOKOnly, "Fehler!"
End If

Ähnliche Artikel

Kommentar schreiben

Sicherheitscode
Aktualisieren

Login Form

Neueste Artikel

Problemstellung: Ab MS-Office 2010 gibt es eine 32bit und eine 64bit Variante.Übernimmt man nun eine Datenbank nach 64bit und diese enthält API-Declare Anweisungenerhlt min in der Regel diese...
1.png2.png0.png4.png4.png2.png0.png
Heute57
Gestern127
Diese Woche465
Dieser Monat1844
Total1204420

  • IP: 54.80.96.153
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

1
Online

20. September 2018

Letzte Kommentare

  • Trusted Locations Manager

    Tommy Admin 13.07.2018 13:06
    RE: Trusted Locations Manager
    Hallo Matthias, aus Ermangelung einer 64bit Version kann ich das leider nicht prüfen. Tut mir leid. Gruss ...

    Weiterlesen...

     
  • Trusted Locations Manager

    Matthias 13.07.2018 06:48
    Funktioniert nicht
    Habe gerade den TL-Manager installiert. Nach dem Start sagt er mir, dass es kein Office erkennen ...

    Weiterlesen...