| |
|
|
| KompilierenMarqueSéparationSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Ordner kopieren
Def @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:ABC,E:TEMP,0,0
Fileaction DELETE,E:TEMP,,1,1
|
|
|
| |
|
|
|
| KompilierenMarqueSéparationSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Ordner kopieren
Def @SHFileOperation(1) !SHELL32,SHFileOperationA
Proc Fileaction
Parameters Action$,File$,File2$,noconfirm%,norecycle%
Parameter 1: Aktion to perform=COPY, DELETE, RENAME, MOVE
Parameter 2: Source
Parameter 3: Destination
Parameter 4: 0 =ask User, 1=delete without any questions
Parameter 5: 0=delete into recycle bin, 1=delete without copying into recycle bin
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(This funktion is unknown!,Error!,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
Long opstruct#,4=Action&
Long opstruct#,8=file#
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
Long opstruct#,22=0
Long opstruct#,26=0
LET FEHLER&=@ShFileOperation(opstruct#)
IF @equ(@long(opstruct#,18),1)
@MessageBox(Operation has been abborded by the user!,Operation abborded!,64)
ELSEIF @neq(Fehler&,0)
@MessageBox(An Error has occured!,ShFileOperation +@str$(Fehler&),16)
EndIf
Dispose file#
Dispose file2#
Dispose opstruct#
endif
EndProc
REM Beispiel
Fileaction COPY,C:WINDOWS,C:CopyWin,0,0
Fileaction DELETE,C:CopyWin,,0,1
|
|
|
| |
|
|