OK, mein Programm ist fertig und trägt den Namen
"ThoGi ContextmenuTools".
Mit ihm ist es möglich, zwei Funktionen zum Explorer-Kontextmenü hinzuzufügen:
"DOS Prompt Here" -> öffnet ein Konsolenfenster im entsprechenden Verzeichnis.
"Path To Clipboard" -> kopiert den Pfad der/des angeklickten Datei/Ordners in die Zwischenablage.
So weit, so gut! (Fast) alles funktioniert einwandfrei, inklusive dem Entfernen der Registry-Keys beim Deinstallieren. Eine klitzekleine Winzigkeit fordert meinen Hang zur Pedanterie
*smile*:
Beim Kopieren des Pfades von Verknüpfungen wird halt nicht der Pfad der
Vernküpfung in die Zwischenablage kopiert, sondern der Pfad des
Verknüpfungs-Ziels.
Beispiel:
Man klickt mit rechts eine Datei an, das Kontextmenü öffnet sich und man wählt "Path To Clipboard". Über den entsprechenden Registry-Eintrag wird meine Applikation gestartet und ein Pfad übergeben.
Ist die angeklickte Datei eine "normale" Datei, z. B. "C:\Test.txt", so wird dieser Pfad korrekt übergeben.
Ist die angeklickte Datei jedoch eine Verknüpfung, z. B. "D:\Test.txt.lnk", so wird dann der Pfad zur Ziel-Datei, also in diesem Fall "C:\Test.txt" übergeben.
Wie kann ich dieses Problem nun so lösen, dass auch bei Verknüpfungen nicht der Pfad zur Ziel-Datei, sondern der Pfad der Vernküpfung selbst übergeben wird? (Wie gesagt, meine App bekommt den Pfad über den Registry-Eintrag, der für das Kontextmenü zuständig ist.)
Ok, ich habe einige andere Tools getestet, die die gleiche Funktionalität zur Verfügung stellen, und es ist bei allen so, dass bei Verknüpfungen der Pfad zum Ziel und nicht der zur Verknüpfung übergeben wird. Wenn wir also hierfür keine Lösung finden, ist das nicht so schlimm. Aber mein Ehrgeiz würde sich freuen, wenn es doch eine Lösung gäbe! *freu*
Guido.