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/)
-   -   Delphi Rausfinden ob ein Kopier oder Löschvorgang läuft.. (https://www.delphipraxis.net/27641-rausfinden-ob-ein-kopier-oder-loeschvorgang-laeuft.html)

MasterT 13. Aug 2004 13:03


Rausfinden ob ein Kopier oder Löschvorgang läuft..
 
Hallo, folgendes...

Ich hab das hier auch schon im Delphi-Forum geostet.
Originallink: http://www.delphi-forum.de/topic_29101.html

Ich kopiere aus einem Ordner etwas heraus. Dieser Vorgang, kann je nach Größe etwas dauern. Ich bekomme ein Event sobald der Vorgang gestartet ist. Jetzt muss ich solange warten, bis der Vorgang abgeschlossen ist. Kann mir da jemand helfen? Gibts ne Message die da geschickt wird oder so? Oder hat jemand eine andere Lösung? Bin für jede Hilfe dankbar...
Nur ums sicher zu stellen. Das kopieren wird nicht von mir gestartet. Sondern übers Kontextmenü kopieren/einfügen vom Explorer.

Gruß

MasterT

Blutiger Anfänger 22. Aug 2004 00:42

Re: Rausfinden ob ein Kopier oder Löschvorgang läuft..
 
Wie kopierst du denn? Es gibt Funktionen die Callbacks unterstützen. IMO auch Shell-Funktionen. Müßte ich aber erst nachschlagen.

MasterT 22. Aug 2004 11:37

Re: Rausfinden ob ein Kopier oder Löschvorgang läuft..
 
ICh kopiere einfach per CopyFile.
Ich hab aber glaube ich eine Lösung gefunden, ich schaue nach ob ein Fenster mit der Caption Kopieren... offen ist, und warte solange. Aber wenn du eine Bessere Lösung hast, immer her damit. Aber es geht nicht um meinen Kopiervorgang, sondern um einen evtl. noch laufenden, der vom USer ausgelöst wurde.

Gruß

MasterT

Blutiger Anfänger 22. Aug 2004 12:08

Re: Rausfinden ob ein Kopier oder Löschvorgang läuft..
 
Zitat:

Zitat von MasterT
ICh kopiere einfach per CopyFile.
Ich hab aber glaube ich eine Lösung gefunden, ich schaue nach ob ein Fenster mit der Caption Kopieren... offen ist, und warte solange. Aber wenn du eine Bessere Lösung hast, immer her damit. Aber es geht nicht um meinen Kopiervorgang, sondern um einen evtl. noch laufenden, der vom USer ausgelöst wurde.

Dann ist aber "gucken ob Fenster" eine Frickellösung. Was der User macht, kann dir doch egal sein, oder wozu brauchst du das?

MasterT 22. Aug 2004 12:18

Re: Rausfinden ob ein Kopier oder Löschvorgang läuft..
 
Ja klar is das ne frickellösung ^^. Ne, das kann mir in dem Fall leider nicht egal sein. Ich führe Aktionen in diesem Ordner durch. Diese kann und darf ich aber nicht durchführen, wenn der User gerda Dateien in oder aus dem ORdner raus kopiert oder löschet. Genau dann muss ich halt warten bis der Vorgang abgeschlossen ist, da es sonst zu problemen kommen kann.

Gruß

MasterT

Blutiger Anfänger 22. Aug 2004 12:54

Re: Rausfinden ob ein Kopier oder Löschvorgang läuft..
 
Ja bloß es gibt hunderte Möglichkeiten Dateien zu kopieren. Hier seien nur mal genannt:
- Read/Write-Paare mit Callbacks ...
- Explizites CopyFile
- CopyFileEx() - in dem du übrigens eine Callback-Routine hast
- Native API
- IOCTLs ...
...

Wieso sollte der Benutzer nun gerade mit dem Explorer arbeiten? Ich zB arbeite nur dann mit dem Explorer wenn nix anderes (zB PTS Commander, freeComander, Turbo Navigator ......) zur Hand ist. Die haben aber eigene Funktionen dafür.

MasterT 22. Aug 2004 13:14

Re: Rausfinden ob ein Kopier oder Löschvorgang läuft..
 
Ja, das ist richtig. Man kann nicht ALLE ausnahmen abfangen. Das ist nunmal leider nicht möglich, aber da wo man es abfangen kann, sollte man dies tun :) Man kann halt leider keine Software entwickeln die mit allen andern Programmen kompatibel ist. Aber das wichtigste, zumindest bei uns ist, das es mit einer Cleanen Windowsversion erstmal einwandfrei läuft. Wir können nicht immer in allen Programmen alle Möglichkeiten durchgehen, was wäre wenn der User nicht Explorer, sondern was anderes Benutzt. Aber natürlich sollte man auch da wenn es machbar ist drauf achten. :)
Also mir geht erstmal nur darum, das der User im Explorer -> Kontextmenü "kopieren" - "einfügen" drückt, und dieser Vorgang unter umständen eine weile dauern kann...

Gruß

MasterT

Ratte 22. Aug 2004 13:52

Re: Rausfinden ob ein Kopier oder Löschvorgang läuft..
 
Hi,

geht das vielleict mit ShellChangeNotifier? passiert ja was mit den Dateien.

Ratte

MasterT 22. Aug 2004 13:54

Re: Rausfinden ob ein Kopier oder Löschvorgang läuft..
 
Genau damit gehts net :) Das Event kommt sofort am Anfang vom Kopiervorgang, ich brauch aber das ende ^^

Blutiger Anfänger 22. Aug 2004 15:59

Re: Rausfinden ob ein Kopier oder Löschvorgang läuft..
 
Tja, dann bleibt sicher wirklich nichts außer einer Frickellösung - es sei denn du wärst bereit 2 Etagen tiefer zu steigen -> Kernel ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr.

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