Code: Alles auswählen
;Windows Me/98/95: benötigt Microsoft Layer For Unicode
#CALLBACK_CHUNK_FINISHED = 0
#COPY_FILE_RESTARTABLE = $2
#PROGRESS_CONTINUE = 0
Procedure CopyCB(a.q,b.q,c.q,d.q,e.l,f.l,g.l,h.l,i.l)
Shared x.l
Select f
Case #CALLBACK_CHUNK_FINISHED
SetGadgetState(1,Int((100/c)*d))
SetGadgetText(2,Str(Int((100/c)*d))+"%")
SetGadgetText(3,Str((GetTickCount_()/1000)-i)+" Sec")
If x = 0
SetGadgetText(4,"von ca. "+Str(Round(((GetTickCount_()/1000)/c) *d,1))+" Sec")
x = 1
EndIf
EndSelect
ProcedureReturn #PROGRESS_CONTINUE
EndProcedure
If OpenWindow(0, 0, 0, 400, 120, "CopyFileEx", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
ButtonGadget(0, 10, 10, 100, 20, "Copy")
ProgressBarGadget(1, 10, 60, 380, 16, 0, 100,#PB_ProgressBar_Smooth)
TextGadget(2, 370, 40, 30, 20, "0%")
TextGadget(3, 10, 40, 30, 20, "0 Sec")
TextGadget(4, 100, 40, 100, 20, "von ca. 0 Sec")
Repeat
ID = WaitWindowEvent()
Select ID
Case #PB_Event_Gadget
Select EventGadget()
Case 0
SetGadgetState(1,0)
SetGadgetText(2,"0%")
SetGadgetText(3,"0 Sec")
SetGadgetText(4,"von ca. 0 Sec")
;Filenamen anpassen
Status = CopyFileEx_("1.rar","2.rar",@CopyCB(),GetTickCount_()/1000,0,#COPY_FILE_RESTARTABLE)
SetGadgetState(1,0)
If Status <> 0
MessageRequester("Copy...","Kopieren erfolgreich",0)
Else
MessageRequester("Copy...","Kopieren nicht erfolgreich",0)
EndIf
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
EndIf