Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
14.12.2020 12:39:47 |
r-heu |
|
|
|
14.12.2020 12:49:04 |
Torsten |
|
|
|
14.12.2020 13:02:36 |
Gast33175 |
|
|
|
12.01.2022 14:14:30 |
Dominik |
|
|
|
13.01.2022 11:28:54 |
Gast6782 |
|
|
Fehler beim Ausführen |
13.01.2022 12:45:56 |
volti |
|
|
Von:
volti |
Datum:
13.01.2022 12:45:56 |
Views:
995 |
Rating:
|
Antwort:
|
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 SHFILEOPSTRUCT) As 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 Boolean) As 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
|
- 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
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- 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 |
|
|
|
14.12.2020 12:49:04 |
Torsten |
|
|
|
14.12.2020 13:02:36 |
Gast33175 |
|
|
|
12.01.2022 14:14:30 |
Dominik |
|
|
|
13.01.2022 11:28:54 |
Gast6782 |
|
|
Fehler beim Ausführen |
13.01.2022 12:45:56 |
volti |
|
|