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 Dateien aus virtuellen Ordnern kopieren (https://www.delphipraxis.net/28948-dateien-aus-virtuellen-ordnern-kopieren.html)

sieppl 1. Sep 2004 16:25


Dateien aus virtuellen Ordnern kopieren
 
Hallo,

hat jemand Erfahrung mit dem Kopieren von Dateien aus virtuellen Ordnern?
z.B. wenn man unter Windows XP auf eine Digitalkamera klickt, kann man
die Dateien wie üblich Kopieren. Ich habe mir mal IShellFolder.GetDisplayName
den kompletten Pfad vom Desktop bis zum Bild zusammengeparst, aber SHFileOperation
schluckt diesen nicht. Kann SHFileOperation nicht mit GUIDs umgehen?
Ich brauche nur einen kleinen Tipp in welche Richtung ich 'lesen' muss um das
Problem hinzubekommen.

Grüße

Sebastian

sieppl 4. Sep 2004 09:31

Re: Dateien aus virtuellen Ordnern kopieren
 
da meine Fragen anscheinend zu 'abgefahren' sind, antworte ich mal wieder selbst auf meine frage.
Es hat mich ca. 2 tage gekostet, eine Lösung zu finden:

Hier der Link der mich auf den richtigen Pfad geführt hat:
Netez Windows Api Tipps
Das ist zwar für C++, aber sollte ja kein Problem darstellen..

Da virtuelle Ordner keine richtigen System-Pfade haben, musste ich ein bisschen tricksen um die Dateien zu kopieren. In diesem Beispiel von einem virtuellen Kamera-Folder. Man müsste auf eigentlich auf die WIA-Schnittstelle zugreifen, aber das wäre noch komplexer gewesen, da es dazu kaum Delphi-Code gibt und die Libs noch nicht übersetzt sind. (Zumindest habe ich es nicht gefunden.)

Man parst sich also schon brav mit IShell-Folder Befehlen zu den Dateien der Begierde, setzt auf diese ein GetUIObjectOf um ein IContectMenu-Interface zu erhalten. Auf diesem Interface führt man nun den Befehl InvokeCommand mit 'copy' aus und verchiebt die Elemente so in die Zwischenablage. Am gewünschten Zielordner wird auch wieder ein IContextMenu::InvokeCOmmand aufgerufen, aber diesmal mit 'paste'. Hurra, die Dateien sind kopiert. Die Bilder von der Kamera liegen übrigens nicht im CF_HDROP Format im Clipboard, da selbst Windows intern das Kopieren über die WIA-Schnittstelle macht.

Ich würde mich sehr über ein Feedback freuen und noch mehr über eine elegantere Lösung zum Kopieren aus virtuellen Ordnern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 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-2025 by Thomas Breitkreuz