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

Allgemeines zu SHFileOperation:

Mit der API-Funktion "SHFileOperationA" ist es möglich die gleichen Dateioperationen wie im Explorer durchzuführen.
Es ist möglich mehrere Dateien oder Verzeichnisse gleichzeitig zu kopieren, zu löschen oder zu verschieben.

Für 32Bit und 64Bit Office Versionen


Als Grundlage benötigt man die API-Deklaration und einige Konstanten.
Dieser Code muss sich in einem öffentlichen Modul im Modulkopf befinden.

'  Shell File Operations
Private Const FO_MOVE = &H1
'Datei(en)/Ordner Verschieben
Private Const FO_COPY = &H2
'Datei(en)/Ordner Kopieren
Private Const FO_DELETE = &H3
'Datei(en)/Ordner Löschen
Private Const FO_RENAME = &H4
'Datei(en)/Ordner Umbennenen
Private Const FOF_MULTIDESTFILES = &H1
'Jede Datei/Ordner bekommen ein anderen Zielpfad,
'diese Pfade müssen für jede Datei/Ordner in pTo angegeben werden
Private Const FOF_CONFIRMMOUSE = &H2
Private Const FOF_SILENT = &H4
'Zeigt keine Dialogbox mit Fortschrittsbalken an
Private Const FOF_RENAMEONCOLLISION = &H8
'Bei Datei/Verzeichnisnamenkollisionen werden die zu
'kopierenden/verschiebenden Dateien/Ordner umbenannt
Private Const FOF_NOCONFIRMATION = &H10
'Zeigt keinen Dialog an wenn einer zb. beim umbennen
'oder überschreiben angezeigt würde
Private Const FOF_WANTMAPPINGHANDLE = &H20
'Füllt die Struktur mit einem Pointer zu einer SHNAMEMAPPING-Struktur
'die alle umbenannten Datein/Ordner enthält die bei der Aktion umbenannt worden sind
Private Const FOF_ALLOWUNDO = &H40
'Rückgängig machen möglich machen, alle Dateien/Ordner Pfade
'müssen für diesen zweck voll ausgeschrieben werden
Private Const FOF_FILESONLY = &H80
'Die angegebene Aktion soll nur für Dateien verwendet werden
Private Const FOF_SIMPLEPROGRESS = &H100
'Zeigt einen Simplen Fortschrittsdialog an der nicht den Pfad
'der Dateien/Ordner anzeigt die Bearbeitet werden
Private Const FOF_NOCONFIRMMKDIR = &H200
'Zeigt keinen Dialog an wenn ein Ordner für einen
'Kopiervorgang erstellt werden muss

#If VBA7 Then
    'Code für 32 bit und 64 bit Office VBA 7
     #If Win64 Then
        Type SHFILEOPSTRUCT
            hWnd As LongPtr
            wFunc As Long
            pFrom As String
            pTo As String
            fFlags As Integer
            fAborted As Boolean
            hNameMaps As LongPtr
            sProgress As String
        End Type
        Declare PtrSafe Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" _
                                     (lpFileOp As SHFILEOPSTRUCT) As LongPtr
     #Else
        Private Type SHFILEOPSTRUCT
            hWnd As Long
            wFunc As Long
            pFrom As String
            pTo As String
            fFlags As Integer
            fAnyOperationsAborted As Boolean
            hNameMappings As Long
            lpszProgressTitle As String
            'nur für FOF_SIMPLEPROGRESS
        End Type
        Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
     #End If
#Else
    Private Type SHFILEOPSTRUCT
        hWnd As Long
        wFunc As Long
        pFrom As String
        pTo As String
        fFlags As Integer
        fAnyOperationsAborted As Boolean
        hNameMappings As Long
        lpszProgressTitle As String
        'nur für FOF_SIMPLEPROGRESS
    End Type
    Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
#End If

 

 

Ähnliche Artikel

You have no rights to post comments

Login Form

Neueste Artikel

SQL zu VBA Konverter
26. Oktober 2018
Problemstellung: Nur für 32Bit Office Versionen Gibt es eine Möglichkeit SQL-Code einer Abfrage so zu konvertieren das der Code in VBA genutzt werden kann? Lösung: Bis Access 2010 gibt das Tool...
1.png6.png5.png3.png8.png7.png9.png
Heute117
Gestern243
Diese Woche117
Dieser Monat2061
Total1653879

  • IP: 18.97.9.169
  • Browser: Unknown
  • Version:
  • OS: Unknown

Online

3
Online

09. Dezember 2024

Letzte Kommentare

  • Berechnen von Zeiträumen als Abfragekriterium

    elmard 02.02.2021 21:02
    1000 Dank
    für diese Datenbankanwendung! Eine sehr gute Umsetzung mit den vielen Möglichkeiten des Datums.

    Weiterlesen...

     
  • SQL zu VBA Konverter

    Tommy Admin 03.11.2019 16:33
    RE: SQL zu VBA Konverter
    Hallo Elmard, danke für die Info. :lol:

    Weiterlesen...

     
  • SQL zu VBA Konverter

    elmard 03.11.2019 14:49
    Bei SmartTools neue Version 4.0
    Dieses Tool liegt inzwischen in der Version 4 vor und läuft nun auch von A2013 und A2016 sowie im ...

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    TommyK 27.02.2019 06:52
    Workshop
    Hallo mpegjunkie, danke für Dein Feedback. Schön das Dir Workshop weiter hilft. :D

    Weiterlesen...

     
  • Workshop zur Benutzung des Multi-Column TreeView Control unter MS-Access

    mpegjunkie 26.02.2019 20:10
    Perfekter Workshop
    Hallo Tommy, perfekter Workshop, toll und umfassend erläutert. Jetzt nutze ich diese Controls auch.

    Weiterlesen...