Thema Datum  Von Nutzer Rating
Antwort
14.12.2020 12:39:47 r-heu
NotSolved
14.12.2020 12:49:04 Torsten
*****
Solved
14.12.2020 13:02:36 Gast33175
Solved
12.01.2022 14:14:30 Dominik
NotSolved
13.01.2022 11:28:54 Gast6782
NotSolved
Blau Fehler beim Ausführen
13.01.2022 12:45:56 volti
NotSolved

Ansicht des Beitrags:
Von:
volti
Datum:
13.01.2022 12:45:56
Views:
995
Rating: Antwort:
  Ja
Thema:
Fehler beim Ausführen

Hallo,

hier die o.a. Ausführungen in dem Beispiel eingearbeitet, da ja gerade bei der API schnell Missverständnisse aufkommen.

Hier, ungetestet, eine 64 Bit-Version.

PS: Den Alias habe ich auch gleich weggelassen. Damit heißt die Function dann SHFileOperationA:

PS: Ich vermute mal, dass das ganze auch ohne Anpassung der LongPtr funktionieren würde, da hWnd und hNameMapping nicht benutzt werden.

Aber natürlich sollte man es korrekt machen.

Code:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
' Konstanten für wFunc
Private Const FO_DELETE          As Long = &H3    ' Dateien löschen

' Konstanten für fFlags
Private Const FOF_NOCONFIRMATION As Long = &H10   ' Keine Bestätigungen anfordern
Private Const FOF_ALLOWUNDO      As Long = &H40   ' in Papierkorb verschieben
Private Const FOF_FILESONLY      As Long = &H80   ' bei WildCards *.* nur auf Dateien beziehen

Private Declare PtrSafe Function SHFileOperationA Lib "Shell32.dll" ( _
        lpFileOp As SHFILEOPSTRUCTAs Long

Private Type SHFILEOPSTRUCT
     hwnd                  As LongPtr
     wFunc                 As Long
     pFrom                 As String
     pTo                   As String
     fFlags                As Integer
     fAnyOperationsAborted As Long
     hNameMappings         As LongPtr
     lpszProgressTitle     As String
End Type


Public Function DateiLoeschen(Dateipfade As String, _
  Optional ByVal InPapierkorb As Boolean, _
  Optional ByVal MitRueckfrage As Boolean, _
  Optional ByVal MitUnterordnern As BooleanAs Boolean

  ' Quelle: http://www.dbwiki.net/

  Dim fo As SHFILEOPSTRUCT

  ' Datei löschen
  fo.wFunc = FO_DELETE

  fo.pFrom = Dateipfade
  ' ggf. Chr$(0) anfügen
  If Right$(fo.pFrom, 1) <> vbNullChar Then
     fo.pFrom = fo.pFrom & vbNullChar
  End If

  ' in Papierkorb verschieben?
  If InPapierkorb = True Then
     fo.fFlags = FOF_ALLOWUNDO
  End If

  ' mit Rückfrage?
  If Not MitRückfrage Then
     fo.fFlags = fo.fFlags Or FOF_NOCONFIRMATION
  End If

  ' mit Unterordnern (bei Angabe von \*.*)?
  If Not MitUnterordnern Then
     fo.fFlags = fo.fFlags Or FOF_FILESONLY
  End If

  DateiLoeschen = Not CBool(SHFileOperationA(fo))

End Function
_________
viele Grüße
Karl-Heinz

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
14.12.2020 12:39:47 r-heu
NotSolved
14.12.2020 12:49:04 Torsten
*****
Solved
14.12.2020 13:02:36 Gast33175
Solved
12.01.2022 14:14:30 Dominik
NotSolved
13.01.2022 11:28:54 Gast6782
NotSolved
Blau Fehler beim Ausführen
13.01.2022 12:45:56 volti
NotSolved