![]() |
Betriebssystem: Win 7,Win 10
Erweiterung Kontextmenü im Windows Explorer
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
wie man eine einfache Erweiterung im Kontextmenü des Explorers hinbekommt habe ich schon herausgefunden. Da geht es um die Einträge in der Registry unter HKEY_CLASSES_ROOT\*\shell\..... (siehe Screenshot) Ich würde nun aber gerne unterhalb meines Eintrages weitere Unter-Einträge haben, also die sich dann aufklappen wie z.B. beim "Senden an" oder "Freigeben für". Dafür habe ich leider bisher noch nichts gefunden. Entweder hat mir bisher das richtige Schlüsselwort zum Googlen gefehlt oder gibt es diese Möglichkeit nicht :shock: Danke für Eure Hilfe Gruß Peter |
AW: Erweiterung Kontextmenü im Windows Explorer
Stichwort: shell extension
![]() ![]() |
AW: Erweiterung Kontextmenü im Windows Explorer
Hmm..
Es geht auch ohne shell extension. (Habe erst letzte Woche damit experimentiert ;) ) Bei shell extension muss die DLL sowohl als 32Bit, wie auch als 64Bit erstellt werden, da z.B. unter 64Bit Windows der Explorer auch immer 64bit ist und entsprechend nur eine 64Bit DLL laden kann. Jedoch wird z.B. beim OpenDialog einer 32Bit App der 32Bit Explorer geladen und dieser braucht dann eine 32Bit DLL.... Hier mal als Beispiel ne .Reg, welche ein Menü-Eintrag mit 3 Sub Einträgen erzeugt (Notepad, Trenner, Word):
Code:
SubCommands="" sorg dafür, dass Untermenüs möglich sind.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\*\shell\CascadeTest] "MUIVerb"="Test Cascade Menu" "SubCommands"="" [HKEY_CURRENT_USER\Software\Classes\*\shell\CascadeTest\Shell] [HKEY_CURRENT_USER\Software\Classes\*\shell\CascadeTest\Shell\Cmd1] @="" "ICON"="\"C:\\Windows\\system32\\notepad.exe\",0" "MUIVerb"="Open with Notepad" [HKEY_CURRENT_USER\Software\Classes\*\shell\CascadeTest\Shell\Cmd1\command] @="notepad.exe \"%V\"" [HKEY_CURRENT_USER\Software\Classes\*\shell\CascadeTest\Shell\Cmd2-Spacer] [HKEY_CURRENT_USER\Software\Classes\*\shell\CascadeTest\Shell\Cmd3] "MUIVerb"="Wordpad" [HKEY_CURRENT_USER\Software\Classes\*\shell\CascadeTest\Shell\Cmd3\command] @="wordpad.exe \"%V\"" MUIVerb = "xxx" ist für die Beschriftung Wichtig sind auch die '"' bei der %V, damit auch Dateinamen mit Leerzeichen korrekt als Parameter übergeben wird. Und verwende %V statt %1, mit %1 hat es an und ab nicht geklappt.. Auch funktionieren DOS-Variablen wie %SYSTEM% nicht im command.. Wenn Du Einträge in einer bestimmten Reihenfolge brauchst, dann müssen die Subcommands (hier 'Cmd1','CM2..) so benannt werden, dass sie Alphabetisch aufsteigend sind! Edit: Ach es ist mir aufgefallen, das ich hier die Shell vom 'HKEY_CURRENT_USER\Software\Classes\*\shell' verwende, ist aber identisch zu 'HKEY_CLASSES_ROOT\*\shell', mit dem Unterschied, dass unter HKEY_CLASSES_ROOT eingetragene Menüs bei allen Usern auf dem Rechner erscheinen, bei HKEY_CURRENT_USER nur beim aktuell angemeldeten. Außerdem benötigt man unter HKEY_CLASSES_ROOT elevated Rechte, wenn deine Menüs durch dein Tool angelegt werden, hingegen unter HKEY_CURRENT_USER nicht ;) Ach ja für Verzeichnisse verwende 'HKEY_CLASSES_ROOT\Directory\shell', bzw. 'HKEY_CURRENT_USER\Software\Classes\Directory\shel l' um dort entsprechende Menüs anzulegen. |
AW: Erweiterung Kontextmenü im Windows Explorer
SEHR COOL Holger! :-D Vielen lieben Dank - genau das was ich gesucht habe!
Funktioniert auch FAST perfekt, nur Dein "Cmd2-spacer" Eintrag macht nicht was ich vermute was er machen soll. Er erzeugt nämlich keine Leerzeile oder Trennstrich sonder einen weiteren Texteintrag "Cmd2-spacer" :) Okay, so einen Trenner brauche ich nicht zwingend, aber wenn wir schon dabei sind, vielleicht hast Du da ja nur was vergessen??? :-D Danke & Gruß |
AW: Erweiterung Kontextmenü im Windows Explorer
Ach so und das mit den CURRENT USER etc. war mir soweit eh klar, aber trotzdem danke auch für diese Hinweise! :thumb:
|
AW: Erweiterung Kontextmenü im Windows Explorer
Hmm..
Zitat:
Hier wird eine mit "Cmd2-spacer" eine Trennlinie erzeugt, was aber auch am klassischen Desktop liegen kann. Edit Hab da mal was gefunden: ![]() |
AW: Erweiterung Kontextmenü im Windows Explorer
So wird auch
Delphi-Quellcode:
kein Spacer daraus?
@="-"
|
AW: Erweiterung Kontextmenü im Windows Explorer
Zitat:
Jedoch geht es mit "CommandFlags"=dword:00000040 innerhalb eines SubEintrages. (Siehe meinen Link). |
AW: Erweiterung Kontextmenü im Windows Explorer
Hier mal ein kleines Muster
Code:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\CascadeTest] "MUIVerb"="Test Cascade Menu" "Position"="Top" "SeparatorAfter"="" "SeparatorBefore"="" "SubCommands"="" [HKEY_CLASSES_ROOT\*\shell\CascadeTest\Shell] [HKEY_CLASSES_ROOT\*\shell\CascadeTest\Shell\Cmd1] "CommandFlags"=dword:00000040 "MUIVerb"="Öffene über Explorer" "ICON"="explorer.exe,0" [HKEY_CLASSES_ROOT\*\shell\CascadeTest\Shell\Cmd1\command] @="explorer.exe \"%V\"" [HKEY_CLASSES_ROOT\*\shell\CascadeTest\Shell\Cmd2] "ICON"="\"notepad.exe\",0" "MUIVerb"="Open with Notepad" [HKEY_CLASSES_ROOT\*\shell\CascadeTest\Shell\Cmd2\command] @="\"notepad.exe\" \"%V\"" [HKEY_CLASSES_ROOT\*\shell\CascadeTest\Shell\Cmd3] "ICON"="\"%ProgramFiles%\\Windows NT\\Accessories\\wordpad.exe\",0" "MUIVerb"="Wordpad" [HKEY_CLASSES_ROOT\*\shell\CascadeTest\Shell\Cmd3\command] @="wordpad.exe \"%V\"" |
AW: Erweiterung Kontextmenü im Windows Explorer
Dann noch 'ne interessante Frage
Ist
Delphi-Quellcode:
in einem 32 Bit-Explorer was Anderes, als im 64 Bit-Explorer?
%ProgramFiles%
Und was passiert irgendwann im 256 Bit-Explorer? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:23 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