Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   ShFileOperation Progress/Fortschritt auslesen (https://www.delphipraxis.net/182791-shfileoperation-progress-fortschritt-auslesen.html)

Julian M. 18. Nov 2014 15:32

ShFileOperation Progress/Fortschritt auslesen
 
Hi, mein Programm kopiert derzeit Dateien und Verzeichnisse mithilfe der folgenden Funktion. Beim Kopieren öffnet sich das bekannte Explorer-Fenster. Ich würde jedoch gerne die Progressbar auf meinem Formular nutzen und das zusätzliche Fenster verstecken. Gibt es eine Möglichkeit, den Fortschritt per Win-API auszulesen ? Hab die Suche benutzt und immer nur gelesen geht nicht, aber im MSDN gibts sowas wie ne Callback Funkion ? Wenn es wirklich nicht geht, gibt es sonst eine Möglichkeit zum Kopieren von Verzeichnissen (nicht Dateien) mit Progressbar ?
Das Durchlaufen des Verzeichnisses und das rekursive Zusammenzählen aller Untergeordneten Dateien mit Findfirst und findnext traue ich mir nicht zu :stupid:

Delphi-Quellcode:
function CopyFiles (const fromDir, toDir: string): Boolean;
 var
   fos: TSHFileOpStruct;
 begin
   ZeroMemory(@fos, SizeOf(fos));
   with fos do
   begin
     wFunc := FO_COPY;
 // fFlags := FOF_FILESONLY;
     fFlags := 0;
     pFrom := PChar(fromDir + #0);
     pTo := PChar(toDir)
   end;
   Result := (0 = ShFileOperation(fos));
 end;

Faxe 18. Nov 2014 16:04

AW: ShFileOperation Progress/Fortschritt auslesen
 
Ich nehm immer CopyFileEx, damit geht das gut. :)

himitsu 18. Nov 2014 16:09

AW: ShFileOperation Progress/Fortschritt auslesen
 
Nee, kein Callback. (mir war auch so, als wenn es da Einen gab :gruebel:)
MSDN-Library durchsuchenShFileOperation
[edit]
Zitat:

CopyFileEx
Ahhh, dort versteckte sich der böse Callback. :stupid:
[/edit]

Eventuell so http://msdn.microsoft.com/en-us/libr.../bb775771.aspx ?

Zitat:

Das Durchlaufen des Verzeichnisses und das rekursive Zusammenzählen aller Untergeordneten Dateien mit Findfirst und findnext traue ich mir nicht zu
siehe Delphi-Referenz durchsuchenIOUtils


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz