TKSoft-Online

Virtuelles Laufwerk erstellen PDF Drucken E-Mail
( 1 Vote )
MS-Access Codes - Codeschnipsel Dateisystem
  
Donnerstag, den 27. Dezember 2007 um 01:00 Uhr

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

DatumKlicks
Total1440
Do. 241
Mi. 231
Di. 221
Mo. 212
So. 202
Sa. 192
Fr. 182
Aktualisiert ( Freitag, den 02. Juli 2010 um 09:26 Uhr )
 

Kommentar schreiben


Sicherheitscode
Aktualisieren

Login

Latest Comments

Latest Forum Posts

Mehr »

Download Statistik

41 Kategorien
187 Dateien
173486 Downloads