Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Delphi mit Verknüpfung eines Bilds öffnen - Pfad der Verknüpfung zurückgeben (https://www.delphipraxis.net/188161-delphi-mit-verknuepfung-eines-bilds-oeffnen-pfad-der-verknuepfung-zurueckgeben.html)

Brainbow 4. Feb 2016 19:40

Delphi mit Verknüpfung eines Bilds öffnen - Pfad der Verknüpfung zurückgeben
 
Hallo,

Ich bin gerade dabei einen ImageViewer für Delphi zu programmieren.

Nun habe ich testweise aus verschiedenen Ordnern Bilder genommen und zu ihnen eine Verknüpfung in einem anderem Ordner erstellt.
Wenn ich nun eines dieser Verknüpfungen mit meiner Applikation öffne, benötige ich den Pfad, in dem die Verknüpfung geöffnet wurde
um auch Zugriff auf die anderen Verknüpfungen zu bekommen.

Ich habe es bereits mit ParamStr versucht, leider wird damit der tatsächliche Pfad zu dem Bild zurückgegeben.

Beispiel:
ich öffne Verknüpfung: C:\Sammelordner\Bild1.jpg.lnk
Ich bekomme als ParamStr: C:\Originalordner\Bild1.jpg (Zieldatei der Verknüpfung)
Allerding benötige ich: C:\Sammelordner\Bild1.jpg.lnk

Jemand ne Idee, wie ich den Pfad bekomme? Vielleicht gibt es dafür ja einen einfachen Befehl, aber habe bereits Google ohne Erfolg durchkämmt.


mfg
Brainbow

Benmik 4. Feb 2016 20:24

AW: Delphi mit Verknüpfung eines Bilds öffnen - Pfad der Verknüpfung zurückgeben
 
Ich würde vorsichtig behaupten, dass dies unmöglich ist. Die Funktion
Delphi-Quellcode:
windows.GetCommandLine
enthält den kompletten ("raw") CommandString, und in dem ist die Verknüpfung nicht enthalten. Offenbar erfolgt eine Weiterleitung auf die tatsächliche Datei und dann erst die Zusammenstellung von ParamStr(). Da jedes Programm erst danach startet, kann in diesen Prozess auch nicht eingegriffen werden. Würde ich jetzt mal sagen.

Rollo62 5. Feb 2016 06:53

AW: Delphi mit Verknüpfung eines Bilds öffnen - Pfad der Verknüpfung zurückgeben
 
Du ruft alsi mit einem 2. Parameter auf ?

Und holst den so in etwa ab ?
Delphi-Quellcode:
http://www.delphibasics.co.uk/RTL.asp?Name=paramstr
Verstehe ich das richtig ?

Wenn du beim Aufruf meine.exe -Link C:\Ordner\bild.jp.lnk übergibst muss das doch genauso im ParamStr ankommen.
Das sind nur Texte.

Oder was is das Problem ?

Rollo

HolgerX 5. Feb 2016 08:17

AW: Delphi mit Verknüpfung eines Bilds öffnen - Pfad der Verknüpfung zurückgeben
 
Hmm..

Da gib es einen Unterschied:
Wenn Du auf einen Link im Explorer (und somit auch auf dem Desktop) doppelclick machst, dann löst der Explorer den Link auf und 'öffnet' die Datei mit dem zugeordneten Programm, wohlgemerkt mit dem richtigen Pfad und nicht mit der Link-Datei.

Wenn Du jedoch die Link-Datei von Hand auf ein Programm per Drag&Drop 'ziehst' dann wird der Dateiname mit Pfad der lnk-Datei an das Programm übergeben.

Währe ja auch blöd, wenn alle Programme, welche bei DoppelClick mit der Datei Starten, eventuell erstmal die Lnk-Datei parsen müssen , um die richtige Datei zu öffnen ;)

Brainbow 5. Feb 2016 15:23

AW: Delphi mit Verknüpfung eines Bilds öffnen - Pfad der Verknüpfung zurückgeben
 
Hallo,

danke für die Antworten.

Schade. Ich hätte gerne mein Programm als Standard genommen, so dass ein Bild direkt per Doppelklick in dem Programm geöffnet wird.
Wenn der Explorer allerdings vor dem Öffnen einer Verknüpfung des Bildes bereits den Pfad auflöst und er mir damit nicht
im Code zur Verfügung steht, muss ich den Ansatz wohl ändern.

Die Idee mit dem Drag&Drop hört sich gut an oder ich lasse den Benutzer die Verknüpfung manuell im geöffneten Programm auswählen.
Damit wäre es leider umständlicher ein Bild zu öffnen, ich würde aber definitiv den Pfad zu den Verknüpfungen bekommen.


mfg
Brainbow


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