Entwickler-Ecke

Windows API - Kontext-Menü und *.lnk


schitho - Mo 20.10.03 23:24
Titel: Kontext-Menü und *.lnk
Hi,

über die Registry hab ich mein Programm im Kontexmenü des Explorers ergänzt.
Sobald also mit der rechten Maustaste auf eine Datei im Explorer geklickt wird, öffnet sich das Kontextmenü in dem auch mein Programm aufscheint.
Wird dieses im Menü angeklickt, dann wird (normalerweise) der Pfad der Datei übergeben.
Nur bei Verknüpfungen (.lnk) wird statt dem Pfad auf die Verknüpfung der Pfad zur eigentlichen Datei geliefert.

Beispiel:
Am Desktop gibt es eine Verknüpfung zur Datei Test.doc im Ordner c:\tmp.
Meinem Programm wird beim anklicken der Verknüpfung nun aber nicht Test.lnk sondern c:\tmp\Test.doc übergeben.

Kann man dies irgendwie verhindern?


Delete - Di 21.10.03 07:57

Zu deinem Beispiel: Das ist ja auch korrekt, da die lnk-Datei auf Test.doc zeigt. Oder was willst du mit der lnk-Datei in deinem Porgramm?


schitho - Di 21.10.03 10:00

Mein Programm ist ein einfacher Shredder. Wenn ich nur die Verknüpfung shreddern möchte geht das aber nicht. (OK! Man kann darüber streiten wozu man überhaupt die Verknüpfung shreddern sollte).

Es besteht halt einfach die Gefahr, dass man irrtümlich statt der Verknüpfung das eigentliche Programm löscht.

Wenn ich über Löschen das Symbol anwähle, wird ja auch nur die Verknüpfung und nicht das eigentliche Programm gelöscht.

Gibt es eine Möglichkeit, wie ich doch den Pfad zur Verknüpfung bekomme?

Gruß
Thomas


Delete - Di 21.10.03 16:04

Du suchst an der falschen Stelle. :roll: Du mußt dort suchen, wo die lnk-Datei physisch auf der Festplatte ist. Und die ist da, wo das Startmenü gespeichert ist. Unte NT ff.: x:\Dokumente und einstellungen\Benutzer\Startmenü und das gleiche noch mal unter All Users


schitho - Di 21.10.03 21:59

Hallo Luckie,

ich fürchte Du hast mein Problem falsch verstanden.

Ich hab folgendes gemeint:

Wenn ich ein Symbol mit der rechten Maustaste anklicke und dann mit der linken Maustaste mein Programm im Kontextmenü auswähle, wird mein Programm gestartet und als Parameter der Pfad der ausgewählten Datei übergeben.

Nur bei den*.lnk Dateien (also bei den Verknüpfungen) eerhalte ich nicht den Pfad zu der lnk-Datei, sondern den Pfad mit dem die lnk-Datei verknüpft ist.

Ich hätte aber gerne auch bei den Verknüpfungen den Pfad der lnk-Datei und nicht den der verknüpften Datei.

Ich hoffe das war halbwegs verständlich. :roll:

Gruß
Thomas


Delete - Di 21.10.03 23:25

Nun ja, verständlich? Nicht unbedingt.

Du klickst also eien lnk-Datei mit der rechten Maustaste an, wählst dein Programm aus und dann bekommst du nicht als Parameter die lnk-Datei sondern die Datei auf die die lnk-Datei zeigt? ist das soweit richtig?


schitho - Di 21.10.03 23:36

Ja! Genau so hab ich es gemeint.