In meinem Leichtsinn als Anfänger hab ich folgendes zusammengesucht mit dem Ziel einen bestimmten Order automatisch zu löschen.
Ich erhalte aber immer die Fehlermeldung : Datei kann nicht gelöscht werden.: Die Quelldatei oder vom Quelldatenträger kann nicht gelesen werden.
Findet jemand meinen Fehler in >>Private Sub spambutton_Click()<< - ist dringend !
CODE
'Anfang für Funktion ganze Ordner löschen
Const Verschieben = &H1&
Const Kopieren = &H2&
Const Löschen = &H3&
Private Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
Quelle As String
Ziel As String
DateiFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String
End Type
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As _
Any, hpvSource As Any, ByVal cbCopy As Long)
Private Declare Function SHFileOperation Lib "Shell32.[vbdll" Alias _
"SHFileOperationA" (lpFileOp As Any) As Long
'Ende für Funktion ganze Ordner löschen
'Für Username ermitteln
Private Declare Function GetUserName Lib "advapi32.dll" Alias _
"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
'Für Windowslaufwerk ermitteln
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias _
"GetWindowsDirectoryA" ( _
ByVal lpBuffer As String, _
ByVal nSize As Long) As Long
'Anfang für Funktion ganze Ordner löschen
Public Function FileOperation(Mode, Source As String, Dest As String, Abfrage, _
Sichtbar) As Boolean
Dim lenFileop As Long
Dim foBuf() As Byte
Dim fileop As SHFILEOPSTRUCT
lenFileop = LenB(fileop)
ReDim foBuf(1 To lenFileop)
With fileop
.hwnd = Me.hwnd
.wFunc = Mode
.Quelle = Source & vbNullChar & vbNullChar & vbNullChar
.Ziel = Dest & vbNullChar & vbNullChar
If Abfrage = False Then .DateiFlags = &H10&
If Sichtbar = False Then .DateiFlags = .DateiFlags Or &H4&
.DateiFlags = .DateiFlags Or &H40&
End With
Call CopyMemory(foBuf(1), fileop, lenFileop)
Call CopyMemory(foBuf(19), foBuf(21), 12)
FileOperation = SHFileOperation(foBuf(1)) = 0
End Function
'Ende für Funktion ganze Ordner löschen
'Für Windowslaufwerk ermitteln
Public Function GetSystemDrive()
Dim S As String, Result As Long
S = Space(255)
Result = GetWindowsDirectory(S, Len(S))
If Result > 0 Then GetSystemDrive = Left(S, 1)
End Function
Private Sub loginbutton_Click()
loginhelfer.Show
End Sub
Private Sub programmende_Click()
Unload Me
End Sub
Private Sub spambutton_Click()
' Windows Laufwerk ermitteln
Dim windowslaufwerk As String
windowslaufwerk = GetSystemDrive
' Benutzernamen ermitteln
Dim RetVal As Long
Dim Puffer As String * 256
Dim UserName As String
RetVal = GetUserName(Puffer, Len(Puffer))
'Bei vbNullChar "abtrennen" und anzeigen
If RetVal <> 0 Then
UserName = Left$(Puffer, InStr(1, Puffer, vbNullChar) - 1)
End If
' Pfad zu Ordner UserData aufbauen
Dim pfadteil_1 As String
pfadteil_1 = ":\Dokumente und Einstellungen\"
Dim pfadteil_2 As String
pfadteil_2 = "\UserData"
Dim pfad_zu_ordner_userdata As String
pfad_zu_ordner_userdata = windowslaufwerk + pfadteil_1 + UserName + pfadteil_2
FileOperation Löschen, "pfad_zu_ordner_userdata", "", False, True
End Sub |