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 Kontext-Menuitems in eigenes Popup-Menü übernehmen... (https://www.delphipraxis.net/51502-kontext-menuitems-eigenes-popup-menue-uebernehmen.html)

FriFra 13. Aug 2005 17:54


Kontext-Menuitems in eigenes Popup-Menü übernehmen...
 
Wie bekomme ich die Dateispezifischen Einträge des Kontextmenüs in mein eigenes Popup-Menü? Und wie rufe ich die verknüpften Funktionen korrekt auf?
http://www.frifra.de/Temp/Kontext.jpg

marabu 13. Aug 2005 18:33

Re: Kontext-Menuitems in eigenes Popup-Menü übernehmen...
 
Hallo FriFra,

nur die statischen Einträge kannst du dir aus der registry besorgen. Die Struktur ist diese:

Code:
HKEY_CLASSES_ROOT
  txtfile = Textdatei
    shell
      open = Öffnen
        command = %SystemRoot%\system32\NOTEPAD.EXE %1
Nach dem Klick auf dein MenuItem führst du dann den command string mit ShellExecute() aus. Bei DDE gehst du ähnlich vor.

Noch ein paar Anmerkungen:

(1) Hinter dem Gleichheitszeichen stehen die Standardeinträge.
(2) Für die well-known-verbs (open, print, printto, ...) vergibt das OS die korrekten lokalisierten Menüeinträge.
(3) Dynamische Menüeinträge bekommst du so nicht zu fassen - warum auch.


Eigentlich kenne ich nur die Frage "wie kann ich selbst Einträge ins Shell-Kontextmenü eines Dateiobjektes zaubern?" - deine Frage ist für mich neu. Schreibst du einen Shell-Ersatz? Macht sonst irgendwie keinen Sinn.

Grüße vom marabu

FriFra 13. Aug 2005 21:24

Re: Kontext-Menuitems in eigenes Popup-Menü übernehmen...
 
Zitat:

Zitat von marabu
Schreibst du einen Shell-Ersatz? Macht sonst irgendwie keinen Sinn.

Nein, ein Shellersatz wird's nicht ;) . Ich bin nur gerade dabei eines meiner Programme zu erweitern... Mein Programm liefert u.a. auch Listen mit gefundenen Dateien in einer TreeView. Bisher biete ich im Kontextmenü nur "Öffnen", "Eigenschaften", "löschen" etc. an, aber die Dateiformatabhängigen dynamischen Einträge des Explorer-Kontextmenüs kann ich natürlich - noch - nicht anzeigen, da ich im Moment nicht weiß wie ich da heran komme.

MathiasSimmack 13. Aug 2005 21:40

Re: Kontext-Menuitems in eigenes Popup-Menü übernehmen...
 
Es gibt eine Möglichkeit, dieses Menü direkt aufzurufen. Irgendwie habe ich dabei das Wort Bei Google suchenItemProp im Kopf. :gruebel: Wie auch immer, du brauchst dabei so ein Menü nicht nachbilden, sondern du rufst es gleich selbst auf. :)

Ich gucke mal nach, ob ich das noch irgendwo habe.

FriFra 13. Aug 2005 21:47

Re: Kontext-Menuitems in eigenes Popup-Menü übernehmen...
 
Danke, das ist schonmal ein Ansatz. ;)

Allerdings sehe ich beim Aufruf des original Menus noch ein paar potentielle Probleme:
- Wie sollen die original Funktionen dieses Menus mit meinen Treenodes klarkommen (die entspr. Nodes enthalten bei mir den Dateinamen inkl. Pfad, die Parentnodes dienen nur der Sortierung)
- Wie bekomme ich eigene Funktionen in dieses Menü (die dürften dann auch nur innerhalb meines Programmes verfügbar sein und nicht etwa im Explorer auftauchen)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz