AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Dateien aus virtuellen Ordnern kopieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien aus virtuellen Ordnern kopieren

Ein Thema von sieppl · begonnen am 1. Sep 2004 · letzter Beitrag vom 4. Sep 2004
Antwort Antwort
Benutzerbild von sieppl
sieppl

Registriert seit: 15. Aug 2004
Ort: Münster
198 Beiträge
 
Delphi 7 Professional
 
#1

Dateien aus virtuellen Ordnern kopieren

  Alt 1. Sep 2004, 17:25
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
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von sieppl
sieppl

Registriert seit: 15. Aug 2004
Ort: Münster
198 Beiträge
 
Delphi 7 Professional
 
#2

Re: Dateien aus virtuellen Ordnern kopieren

  Alt 4. Sep 2004, 10:31
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.
Sebastian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:38 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