| |
|
|
| Beschreibung:
avec qui API SHFileOperation peux on ganze Dossier ou bien einzelne Fichiers avec Forschrittsanzeige kopieren, effacer (aussi corbeille à papier), Déplacer ou bien umbenenen.
Deklaration:
Def @SHFileOperation(1) !SHELL32,SHFileOperationA
paramètre:
1.paramètre: Structur ou bien 30 Byte grand Bereichsvariable => -Byte 0-3 = Handle des Fensters, sur dem qui Fortschrittsdialog erscheinen soll. -Byte 4-7 = Flag pour qui durchzuführende Aktion => $1 = verschieben; $2=kopieren; $2=löschen; $4=umbenenen -Byte 8-11 = Adresse einer Bereichvariablen, qui qui trop modifizierende(n) Dossier(en) ou bien Dossier contient. cet Bereichvariable doit comme Abschluß deux Nullbytes enthalten. Einzelne Fichiers ou bien Dossier volonté avec einem Nullbyte getrennt. -Byte 12-15 = Adresse einer Bereichvariablen, qui qui but-fichier(en) ou bien -ordner contient. cet Bereichvariable doit comme Abschluß deux Nullbytes enthalten. Einzelne Fichiers ou bien Dossier volonté avec einem Nullbyte getrennt. -Byte 16-17 = Flag pour qui weitere Optionen qui durchzuführenden Aktion => $40 = si possible volonté Undoinformationen gespeichert. $80 = si Wildcards (*.*) verwendet volonté, seulement Fichiers berücksichtigen. $1 = il y a plusieurs Zielordner. $10 = aucun Einzelbestätigung. $200 = cela Erstellen eines Ordners doit pas bestätigt volonté. $2000 = Verbundene Files pas comme Gruppe Déplacer. $800 = Es volonté aucun Security Attribute kopiert (NT/2000/XP) $400 = Es wird ne...aucune Userinterface chez einem faute ausgegeben. $1000 = Es volonté aucun Unterverzeichnisse berücksichtigt (seulement aktuelles Verzeichnis). $8 = si Filename déjà vorhanden ist, anderen Namen donner! $4 = Es wird ne...aucune Fortschrittsdialog angezeigt. $100 = seulement Fortschrittsdialog, keinen Dateinamen Montrer! $20 = Es wird un Mapping objet avec den alten et neuen Dateinamen erzeugt, si $8 spezifiziert wurde et Files umbenannt wurden. -Byte 18-21 = Rückgabeflag. si qui User une Aktion abgebrochen hat, steht ici 1. -Byte 22-25 = ici steht comme Rückgabe cela Handle des Mapping Objektes, si $20 spezifiziert wurde. -Byte 26-29 = qui Adresse eines Textstrings comme Überschrift pour den Fortschrittsdialog, si $100 spezifiziert wurde.
Rückgabewert:
0 chez Erfolg, 1 chez faute.
Beispiele:
KompilierenMarqueSéparationDef @SHFileOperation(1) !SHELL32,SHFileOperationA
Proc Fileaction
Parameters Action$,File$,File2$,noconfirm%,norecycle%
Parameter 1: Auszuführende Aktion=COPY, DELETE, RENAME, MOVE
Parameter 2: Quelldatei
Parameter 3: Zielldatei
Parameter 4: 0 = User erst fragen, 1= ohne Nachfrage löschen
Parameter 5: 0 = In Papierkorb verschieben, 1= endgültig löschen
Declare FOF_Flag%,Action&,DO%,Fehler&
Declare opstruct#,file#,file2#
LET DO%=0
IF @upper$(Action$)=RENAME
Let Action&=4
elseIF @upper$(Action$)=COPY
Let Action&=2
elseIF @upper$(Action$)=MOVE
Let Action&=1
elseIF @upper$(Action$)=DELETE
Let Action&=3
else
@messagebox(Diese Funktion ist nicht bekannt!,Aktion wird nicht ausgeführt!,64)
LEt DO%=1
endif
IF DO%=0
Case noconfirm% : Let noconfirm%=16
CaseNot norecycle% : Let norecycle%=64
Let FOF_Flag% = @or(noconfirm%,norecycle%)
Dim opstruct#,30
Dim file#,Add(Len(file$),2)
Dim file2#,Add(Len(file2$),2)
String file#,0=@Add$(file$,@Chr$(0))
String file2#,0=@Add$(file2$,@Chr$(0))
Long opstruct#,0=%hwnd Handle des aufrufenden Fensters
Long opstruct#,4=Action&
Long opstruct#,8=file# pfrom : hier der zu löschende Ordner
Long opstruct#,12=file2# pto (muß 0 oder eine Bereichvar. mit Zieldateinamen z.B. bei Umbenennung sein
Word opstruct#,16=FOF_Flag%
Long opstruct#,18=0 Hier steht nach dem Aufruf 1, wenn User abgebrochen hat
Long opstruct#,22=0 Unbedingt immer auf Null setzen!
Long opstruct#,26=0 Zeiger(Bereich) auf Überschrift des Fortschrittsdialogs
LET FEHLER&=@ShFileOperation(opstruct#)
IF @equ(@long(opstruct#,18),1)
@MessageBox(Die Dateioperation wurde abgebrochen!,Operation abgebrochen!,64)
ELSEIF @neq(Fehler&,0)
@MessageBox(Es ist ein Fehler aufgetreten,ShFileOperation +@str$(Fehler&),16)
EndIf
Dispose file#
Dispose file2#
Dispose opstruct#
endif
EndProc
REM Beispiel
Fileaction COPY,C:WINDOWS,E:TEMP,0,0
Fileaction DELETE,E:../../funktionsreferenzen/XProfan/temp/'>TEMP,,1,1
|
|
|
| |
|
|
|
J. Strahl | Hallölle,
belle Funktion qui je benutze qui Userprofile sur une Stick trop kopieren.
malheureusement gibt es dans dem Dossier %userprofile%Lokale EinstellungenAnwendungsdatenMicrosoftWindows qui Dossier UsrClass.dat quelle dans Benutzung ist. Beimm kopieren bekomme je qui Fehlermeldung Dossier peux pas kopieren volonté là vous dans Benutzung ist
Gibt es une Possibilité solche Fichiers trop überspringen ou bien qui qui Fehlermeldung trop tourner autour de ? - Pour qui Fehlermeldung bricht cela Programme ab et qui reste wird pas plus kopiert.
|
|
|
| Windows 7 Ultimate 64 * 12 GB Ram * XProfan 11.2a * PRFellow * PRFPAD | 22.06.2008 ▲ |
|
|
|
|
| exposition la fois, ici stehen Flags [...] , z.B. FOF_NOCONFIRMATION ou bien FOF_NOERRORUI. |
|
|
| |
|
|
|
Michael Dell | Salut,
Du könntest den Dossier Zippen qui geschützten Fichiers blieben ensuite ausen avant.
ou bien Du startest den PC avec nem zweiten Betriebsystem ou bien ner Live-CD/DVD et kopierst den Dossier komplett.
avec einer DOS-Startdiskette peux Du cela aussi si Du lfn4dos et eff. ntsf4dos verwendest!
qui dernier Possibilité wäre qui SFP (SystemFileProtection) abzuschalten, en ist allerdings dringend abzuraten, car cela hieße directe manipulation des Systems! |
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 22.06.2008 ▲ |
|
|
|
|
| je crois SystemFileProtection débrancher serait ihm ici pas viel nutzen.
si es ihm um cela Lecture qui Dossier allez hilft vlt. un FileMode sur seulement Lesen trop mettons.
Incidemment habe je qui Dossier UsrClass.Dat pas. (xphomesp3) |
|
|
| |
|
|
|
J. Strahl | oui, suppa - qui l'affaire avec den Flags comme mir Schonmal. important ist cela weiterkopiert wird. Allerdings habe je maintenant keinerlei plan wohin et comment je maintenant irgendwo un Flag mets.
` FOF_NOERRORUI -- Do not display a dialog to le user si à error occurs.`
Soweit bien sûr mais den source entsprechend abändern. No plan.. quelqu'un de euch ? |
|
|
| Windows 7 Ultimate 64 * 12 GB Ram * XProfan 11.2a * PRFellow * PRFPAD | 22.06.2008 ▲ |
|
|
|
|
| |
|
| |
|
|
|
J. Strahl | oha, sorry - blutigen Débutant.......
Cas noconfirm% : Laisser noconfirm%=16 Casenote norecycle% : Laisser norecycle%=64 Laisser FOF_Flag% = @or(noconfirm%,norecycle%)
je leite la fois en ab cela dem FOF_Flag% encore quoi einschieben doit. mais quoi ?
|
|
|
| Windows 7 Ultimate 64 * 12 GB Ram * XProfan 11.2a * PRFellow * PRFPAD | 22.06.2008 ▲ |
|
|
|
|
| |
|
| |
|
|
|
| j'ai den dessus stehenden Code dans meinen NC-Clone déjà avant deux Jahren incorporé. qui paramètre peut sur qui zum Programme gehörende INI-Dossier verstellt volonté et cela Ganze funktioniert parfait |
|
|
| |
|
|
|
J. Strahl |
ne ne ne, je ne sais pas quoi je ihm donner soll. j'ai maintenant alles gehabt, direkter Abbruch sans annonce. Kopieren sans Anzeige quoi kopiert wird. mais cela qui faute simple übersprungen wird, klappt pas. je sais là pas plus, vais mais en aus le moi cela eh pas schnalle.
j'ai dans qui la ligne :
Laisser FOF_Flag% = @or(noconfirm%,norecycle%)
simple la fois un + 32 et verchiedene autre Opportunités ausprobiert. je viens mais pas sur cela gewünschte Ergebniß. je sais simple pas et habe es aussi pas trouver peut quel Wert zusätzlich là rein doit.
@ Horst : j'ai la fois pour dem NC-Clone gesucht si je là quelque chose trouver peux - malheureusement konnte je des aussi pas trouver. höhö
|
|
|
| Windows 7 Ultimate 64 * 12 GB Ram * XProfan 11.2a * PRFellow * PRFPAD | 22.06.2008 ▲ |
|
|
|
|
|
j'ai la fois pour dem NC-Clone gesucht si je là quelque chose trouver peux - malheureusement konnte je des aussi pas trouver. höhö
wohin veux Du car là chercher ? - ensuite müsstest Du déjà Zugang trop meiner Festplatte avons - sauf Jörg hätte encore den Code vom Beta-Test et cela glaube je pas. So comment im Bild sieht il aus et hat den Code intregiert |
|
|
| |
|
|