Das lineare Programm hier soll nur löschen, klappt auch prima. Der Fortschritt wird mithilfe des Progressbar angezeigt. Jedoch ist es so, dass sich das Fenster, sobald man etwas anderes macht wie z.B. das Startmenü, einen Ordner oder Programm öffnen (=Programm wird in den Hintergrund verschoben) oder einfach verschiebt, aufhängt. Das bleibt dann so, bis das Programm fertig ist und schließt sich dann. Lässt sich das verhindern?
Code: Alles auswählen
Procedure OpenProgressWindow()
If OpenWindow(0, 428, 271, 526, 61, "Fortschritt", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
TextGadget(0, 10, 10, 510, 20, "Lösche Datei...")
ProgressBarGadget(1, 10, 30, 510, 20, 0, 10)
EndIf
EndProcedure
Datei$ = OpenFileRequester("", "C:\", "Alle Dateien (*.*)", 0, 0)
Datei2$ = GetPathPart(Datei$)+Str(Random($FFFF))
RenameFile(Datei$, Datei2$)
OpenProgressWindow()
If OpenFile(0, Datei2$)
laenge.d = FileSize(Datei2$)
SetGadgetAttribute(1, #PB_ProgressBar_Maximum, laenge)
For c=0 To laenge Step 1
WriteWord(0, Random($FFFF))
FlushFileBuffers(0)
SetGadgetState(1, c)
Next
CloseFile(0)
DeleteFile(Datei2$)
Else
MessageRequester("Fehler", "Während dem Löschvorgang ist ein Fehler aufgetreten.")
EndIf
; IDE Options = PureBasic 4.41 (Windows - x86)
; CursorPosition = 8
; Folding = +
; EnableXP
; Executable = ..\Desktop\CShred.exe