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 Path aus ShellListView D7 (https://www.delphipraxis.net/142063-path-aus-shelllistview-d7.html)

Alter Mann 21. Okt 2009 13:36


Path aus ShellListView D7
 
Hallo

habe das kleine Problem Dateien von einer USB-Kamera zu importieren, welche im
ShellTreeView als eigenständiger Eintrag unter Arbeitsplatz auftaucht.
(ShellTreeView aus Beispiele)

Lasse ich mir den PathNamen des ausgewählten Bildes anzeigen, erhalte ich folgenden Wert:
Zitat:

';;{E211B736-43FD-11D1-9EFB-0000F8757FCD}\devid:{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}\0002:\0002\Root\000_0001'
Nehme ich ein OpenPictureDialog und wähle dort die Datei aus, bekomme ich die Fehler-Meldung:
Zitat:

"'Datei: C:\Dokumente und Einstellungen\User\Eigene Dateien\Root\000_0001.jpg' kann nicht geöffnet werden.
Das System kann den angegebenen Pfad nicht finden."
Irgendwie klappt es mit der PItemIDList-Zuordnung nicht, es schaut so aus, als wenn die RelativeID genommen wird, anstatt
die AbsoluteID.

Nun meine Frage, wie kann ich den richtigen Pfad ermitteln damit das/die Bild(er) geöffnet werden können?

SHGetFolderLocation geht nicht, da kein Dateisystem.

Für einen guten Tipp immmer Dankbar

Alter Mann

Carnivore 21. Okt 2009 17:09

Re: Path aus ShellListView D7
 
Das sind virtuelle Shell Folder, für die gibt es meines Wissens keinen Dateisystem-Pfad.

Mit den ShellBrowser Controls von JAM Software kann man die Bilder glaube ich in einen Dateisystempfad kopieren. Der Code dürfte etwa so aussehen, wenn die Bilder dort schon angezeigft werden:

JamShellList.SelectAll;
JamShellList.InvokeCommandOnSelected('copy');
JamShellList.Path := 'C:\Ziel';
JamShellList.InvokeCommandOnFolder('paste');

ShellBrowser Delphi Edition Homepage

Alter Mann 22. Okt 2009 06:17

Re: Path aus ShellListView D7
 
Hallo Carnivore

das die ShellControls von JAM Software das können ist mir bekannt.
Eine der Demos führen genau diese Verhalten vor, allerdings ist im Code
nur zu erkennen, dass alles über JAMShellLink synchron gehalten wird.

Gruß

Carnivore 22. Okt 2009 13:54

Re: Path aus ShellListView D7
 
Der JamShellLink wird hierfür gar nicht benötigt. Man braucht im Endeffekt nur das visuelle Control JamShellList und die vier Codezeilen. Wenn man das Low Level über die Shell API wird's schnell kompliziert. Mit Dateisystempfaden geht das meines Wissens nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 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