| |
|
|
Mit der API SHFileOperation kann man ganze Ordner oder einzelne Dateien mit Forschrittsanzeige kopieren, löschen (auch Papierkorb), verschieben oder umbenenen. Deklaration:
Def @SHFileOperation(1) !"SHELL32","SHFileOperationA" Parameter:
P:B1 Structur oder 30 Byte große Bereichsvariable => Byte 0-3 = Handle des Fensters, auf dem der Fortschrittsdialog erscheinen soll. Byte 4-7 = Flag für die durchzuführende Aktion => $1 = verschieben; $2=kopieren; $2=löschen; $4=umbenenen Byte 8-11 = Adresse einer Bereichvariablen, die die zu modifizierende(n) Datei(en) oder Ordner enthält. Diese Bereichvariable muß als Abschluß zwei Nullbytes enthalten. Einzelne Dateien oder Ordner werden mit einem Nullbyte getrennt. Byte 12-15 = Adresse einer Bereichvariablen, die die Ziel-datei(en) oder -ordner enthält. Diese Bereichvariable muß als Abschluß zwei Nullbytes enthalten. Einzelne Dateien oder Ordner werden mit einem Nullbyte getrennt. Byte 16-17 = Flag für die weitere Optionen der durchzuführenden Aktion => $40 = Wenn möglich werden Undoinformationen gespeichert. $80 = Wenn Wildcards (*.*) verwendet werden, nur Dateien berücksichtigen. $1 = Es gibt mehrere Zielordner. $10 = Keine Einzelbestätigung. $200 = Das Erstellen eines Ordners muß nicht bestätigt werden. $2000 = Verbundene Files nicht als Gruppe verschieben. $800 = Es werden keine Security Attribute kopiert (NT/2000/XP) $400 = Es wird kein Userinterface bei einem Fehler ausgegeben. $1000 = Es werden keine Unterverzeichnisse berücksichtigt (nur aktuelles Verzeichnis). $8 = Wenn Filename schon vorhanden ist, anderen Namen geben! $4 = Es wird kein Fortschrittsdialog angezeigt. $100 = Nur Fortschrittsdialog, keinen Dateinamen anzeigen! $20 = Es wird ein Mapping Objekt mit den alten und neuen Dateinamen erzeugt, wenn $8 spezifiziert wurde und Files umbenannt wurden. Byte 18-21 = Rückgabeflag. Wenn der User eine Aktion abgebrochen hat, steht hier 1. Byte 22-25 = Hier steht als Rückgabe das Handle des Mapping Objektes, wenn $20 spezifiziert wurde. Byte 26-29 = Die Adresse eines Textstrings als Überschrift für den Fortschrittsdialog, wenn $100 spezifiziert wurde.
|
|
|
| |
|
|