Suche:

Sie sind hier: Home > Helpdesk > Ratgeber > Zum Archiv > Kontext-Menues selbst gemacht

Desktop erweitern

So geht's: Kontextmenüs selbstgemacht

Die Kontextmenüs unter Windows sind problemlos um eigene Einträge erweiterbar schon ein Zweizeiler genügt.

Eines der schönsten Dinge an der Arbeitsoberfläche von Windows ist die Möglichkeit, darauf die unterschiedlichsten Objekte abzulegen. Aber oftmals ist nach intensiver Arbeit gerade der Desktop komplett mit unzähligen Fenstern bedeckt, so dass man nur nach vielen Mausklicks an die darauf abgelegten Dateien gelangt. Als Lösung für diesen lästigen Umstand könnte man sich einen Eintrag im Kontextmenü des Startknopfes vorstellen, der den betreffenden Ordner öffnet denn schließlich ist die Arbeitsoberfläche nichts anderes als ein ganz normales Verzeichnis.

Eine gute Idee, nur wird sie von Windows zunächst nicht geboten. Dennoch gibt es eine Möglichkeit hierfür, da sichdie Shell dank ihres modularen Aufbaus im Handumdrehen erweitern lässt auch um Einträge in den diversen Kontextmenüs.

Mit zwei Zeilen ist man dabei ...
Der Schlüssel zu eigenen Kontextmenüeinträgen liegt wie so oft in der Registrierung von Windows. Unter HKEY_CLASSES_ROOT sind alle dem System bekannten Objekttypen eingetragen. Dabei kann es sich um ganz normale Dateitypen wie beispielsweise .txt handeln. Aber es sind auch allgemeinere Einträge vorhanden, etwa *, Folder oder Drive. Diese stehen für beliebige Dateien, Ordner und Laufwerke. Je nach Bezug kann nun für den betreffenden Objekttyp ein Eintrag für dessen Kontextmenü vereinbart werden, die im Unterschlüssel Shell aufgenommen werden. Soll beispielsweise im Kontextmenü von Ordnern ein zusätzlicher Eintrag aufgenommen werden, so lautet der betreffende Schlüssel HKEY_CLASSES_ROOT \Folder \Shell (zum Verständnis: Auch der Startknopf von Windows gehört zur Gattung der Ordner). Um nun den eingangs erwähnten Eintrag zum Öffnen des Desktop-Ordners zu verwirklichen, sind folgende Schritte nötig:

  1. Zunächst ist der Registrierungseditor regedit.exe zu starten und damit der Schlüssel HKEY_CLASSES_ROOT \Folder \Shell zu öffnen.
  2. Hierin wird dann ein Unterschlüssel mit beliebigen Namen angelegt, beispielsweise OeffneDesktop. Bei der Namensgebung ist allerdings darauf zu achten, dass keine Umlaute oder sonstige Sonderzeichen verwendet werden.
  3. Im dritten Schritt ist diesem neuen Schlüssel dann eine Zeichenkette mit dem Text für den Kontextmenüeintrag zuzuweisen, beispielsweise Öffne &Desktop. Hierbei sind Umlaute und dergleichen zugelassen. Mit dem Ampersand (&) kann zudem festgelegt werden, welches Zeichen als Hotkey fungieren soll in diesem Fall ist es das D von »Desktop«.
  4. Der Schlüssel OeffneDesktop erhält nun einen weiteren Unterschlüssel namens Command.
  5. Wie der Name bereits vermuten läßt, erhält dieser Unterschlüssel eine Zeichenkette mit dem auszuführenden Befehl. Zum Öffnen des Arbeitsoberflächenverzeichnisses ist hier Explorer c:\windows\desktop einzutragen.

Das war schon alles! Wird jetzt mit der rechten Maustaste auf den Startknopf oder das Icon eines Verzeichnisses geklickt, erscheint auch der Eintrag Öffne Desktop. Ein weiterer Klick darauf, und der gewünschte Ordner wird geöffnet.

Wer den Umgang mit dem Registrierungseditor weniger schätzt und statt dessen lieber mit fertigen Scripts arbeitet, erreicht das gleiche Ergebnis mit folgendem Text:

REGEDIT4
[HKEY_CLASSES_ROOT\Folder\shell\OeffneDesktop]
@="Öffne &Desktop"
[HKEY_CLASSES_ROOT\Folder\shell\OeffneDesktop\command]
@="Explorer.exe C:\\WINDOWS\\Desktop"

Wird er unter beliebigem Namen, aber mit der Endung .reg gespeichert, so genügt ein Doppelklick auf diese Datei, und schon sind die entsprechenden Einträge gemacht und das Kontextmenü erweitert. Man lasse sich nicht durch die vielen Rückstriche (\) verwirren, denn teilweise handelt es sich nur um Ersatzzeichen. So steht \\ für einen einzelnen Rückstrich und \" für ein Anführungszeichen.

Übrigens: Die in Microsofts Power Toys enthaltenen Tools »Explore here« und »DOS here« zum Öffnen des Explorers beziehungsweise einer DOS-Box über das Kontextmenü eines Ordners funktionieren exakt genauso:

REGEDIT4
[HKEY_CLASSES_ROOT\Directory\shell\DosHere]
@="Command &Prompt Here"
[HKEY_CLASSES_ROOT\Directory\shell\DosHere\command]
@="C:\\WINDOWS\\command.com /k cd \"%1\""

Eine weitere praktische Anwendung für ein »aufgebohrtes« Kontextmenü wäre das Öffnen beliebiger Dateien mit dem Standard-Editor. Denn die vielen Textdateien wie beispielsweise readme.now, file_id.diz oder scandisk.log lassen sich nicht ohne weiteres mit einem Doppelklick öffnen und wer will schon all diese Typen in die Registrierung mit aufnehmen? Hier die Lösung:

REGEDIT4
[HKEY_CLASSES_ROOT\*\shell\MitNpOeffnen]
@="Mit &Notepad öffnen"
[HKEY_CLASSES_ROOT\*\shell\MitNpOeffnen\command]
@="notepad.exe \"%1\""

Als Dateityp wurde bewußt der Stern verwendet. Dadurch hält der Anwender in den Kontextmenüs einer jeden Datei den Eintrag Mit Notepad öffnen, so dass er fortan für alle Fälle gewappnet ist. Noch ein Wort zur letzten Listingzeile. Das erste und letzte Anführungszeichen darin grenzen die Zeichenkette an sich ein. Die Zeichenfolge \"%1\" wird bei der Eintragung in die Registrierung dann in "%1" aufgelöst. Für %1 wird später der Name des betreffenden Objekts eingesetzt. Da es sich dabei mitunter um einen langen Dateinamen mit Leerzeichen handeln kann, muß dieser in Anführungszeichen gesetzt werden sonst wird der Name in mehrere Parameter aufgesplittet, und Notepad erhält fälschlicherweise nur den ersten Teilnamen.

Etwas Luxus
Alle bisher gezeigten Beispiele haben allerdings einen gemeinsamen Nachteil: Sie lassen sich nur mit Mühe wieder deinstallieren. Um der Sache diesen Stachel zu nehmen, kann auf die Hilfe von Windows-INF-Dateien zurückgegriffen werden:

[version]
signature="$CHICAGO$"

[DefaultInstall]
AddReg = OeffneDesktop.AddReg
CopyFiles = OeffneDesktop.CopyFiles.Inf

[DefaultUninstall]
DelReg = OeffneDesktop.AddReg
DelFiles = OeffneDesktop.CopyFiles.Inf

[SourceDisksNames]
55="Öffne Desktop", "", 1

[SourceDisksFiles]
ZeigDtop.Inf=55

[DestinationDirs]
OeffneDesktop.CopyFiles.Inf = 17

[OeffneDesktop.CopyFiles.Inf]
ZeigDtop.Inf

[OeffneDesktop.AddReg]
HKCR, Folder\shell\OeffneDesktop, , , "%OeffneDesktopMenuEntry%"
HKCR, Folder\shell\OeffneDesktop\command, , , "Explorer.exe %10%\Desktop"
HKCR, Drive\shell\OeffneDesktop, , , "%OeffneDesktopMenuEntry%"
HKCR, Drive\shell\OeffneDesktop\command, , , "Explorer.exe %10%\Desktop"
HKLM, %Uninstall%, DisplayName, , "%OeffneDesktopUninstEntry%"
HKLM, %Uninstall%, UninstallString, , "RunDll setupx.dll, InstallHinfSection DefaultUninstall 132 %17%\ZeigDtop.Inf"

[Strings]
OeffneDesktopMenuEntry = "Öffne &Desktop"
OeffneDesktopUninstEntry = "Öffne Desktop (Entfernen)"
Uninstall= "Software\Microsoft\Windows\CurrentVersion\ ...
Uninstall\OeffneDesktop"

Richtig eingesetzt hat man damit nicht nur die Möglichkeit, die entsprechenden Registrierungseinträge vom System selbst vornehmen zu lassen, sondern auch eine entsprechende Deinstallationsroutine einzubauen. Die Installation startet man über den Eintrag Installieren des betreffenden Kontextmenüs die Deinstallation über den Punkt Software in der Systemsteuerung.

Als Basis hierfür können die entsprechenden INF-Scripts von Explore here und DOS here aus den bereits genannten Power Toys dienen. Hierbei ist aber dringend auf ein paar Dinge zu achten, da sich das Script sonst nicht installieren läßt (und die Fehlermeldungen mehr als irreführend sind):

  • Die Namen von Registrierungsschlüsseln dürfen keine Umlaute oder Sonderzeichen enthalten, innerhalb von Zeichenketten (Sektion [Strings] und so weiter) sind diese aber erlaubt.
  • Der Dateiname der INF-Datei selbst darf kein langer Dateiname sein. Das Verzeichnis, in dem sich die INF-Datei befindet, darf ebenfalls keine langen Namen enthalten.

Zum Verständnis noch ein paar klärende Worte zu den in den INF-Beispielen verwendeten Standardvariablen:

" HKLM bedeutet HKEY_LOCAL_MACHINE
" HKCR bedeutet HKEY_CLASSES_ROOT
" 10 steht für das Windows-Verzeichnis
" 17 steht für das INF-Verzeichnis
" 55 steht für das aktuelle Verzeichnis

Weitere Beispiele
Alle zu diesem Artikel gehörenden Beispieldateien sind hier im Anschluss als ZIP-Packerarchiv beziehbar. Zusätzlich sind u.a. noch folgende Kontextmenüerweiterungen enthalten:

" startenc.inf für den Start des Norton Commanders in einem bestimmten Verzeichnis (in Anlehnung an DOS here)
" neuordnr.inf zum (schnelleren) Anlegen eines neuen Ordners.

Download: ZIP-kompatibles Archiv (86,57 KByte)
für Windows 98/ME/2000/XP/Vista
Hilfe und Infos zur Installation finden Sie hier.

Alle Tools und Artikel komplett auf der Tools&More-CD.

Unterstützen Sie Tools&More: Lassen Sie sich registrieren.

Dieses Programm weiterempfehlen.

Top
© 2010 Wirth IT-Design
Druckversion