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
Weiterlesen...