Wie kann ich meinem benutzerdefinierten Kontextmenüelement in Windows 7 ein Symbol hinzufügen?

9

Verwandte: Wie kann ich dem Kontextmenü aller Dateien ein Programm hinzufügen?

Ich habe mein benutzerdefiniertes Kontextmenüelement erstellt und es scheint bei allen Dateitypen zu funktionieren - auch über Verknüpfungen. (Wenn Sie meine benutzerdefinierte Option auswählen, wird der Vorgang für das Verknüpfungsziel ausgeführt, nicht für die .lnk-Datei.) Jetzt möchte ich ein Symbol erstellen, um es hervorzuheben. Mein Antivirenprogramm und Notepad ++ scheinen dazu in der Lage gewesen zu sein, daher weiß ich, dass dies möglich ist. Die Frage ist nur, wie?

Iszi
quelle

Antworten:

10

Öffnen Sie regedit.exe und suchen Sie den Schlüssel, den Sie für den benutzerdefinierten Menüpunkt erstellt haben.

Erstellen Sie nun einen neuen String-Wert und benennen Sie ihn Icon. Doppelklicken Sie darauf und geben Sie den Pfad zu Ihrer benutzerdefinierten Symboldatei ein:

c: \ folder \ icon.ico

Optional können Sie die Windows-Datei shell32.dll wie in meinem Beispiel verwenden: Registrierung

Das Ergebnis:

Symbol im benutzerdefinierten Kontextmenü

Nur ein zusätzlicher Hinweis - diese Methode funktioniert anscheinend unter Windows 7 (und wahrscheinlich unter Vista), aber das Symbol wurde beim Testen unter Windows XP nicht angezeigt.

Siim K.
quelle
Vielen Dank für die Antwort und das Testen unter XP. Ich werde es später heute versuchen müssen. Außerdem habe ich festgestellt, dass sich Ihre Methode ein wenig von der Antwort auf meine vorherige Frage unterscheidet. (Siehe Link in dieser Frage.) In der vorherigen Antwort wurde der Text für das Kontextmenüelement im Schlüsselnamen gespeichert. In Ihrem ist es in einem Zeichenfolgenwert innerhalb des Schlüssels gespeichert. Gibt es einen praktischen Grund für den Unterschied?
Iszi
@Iszi - nicht sicher, ob es einen wirklichen Unterschied gibt. Ich habe gerade ein solches Beispiel gefunden
Siim K
1
Es scheint, Sie haben Recht damit, dass es unter XP nicht funktioniert. Ich kann mir nicht vorstellen, warum das nicht der Fall ist, da mein AV und Notepad ++ immer noch Symbole haben. Ihre Funktionen scheinen jedoch abgedeckt zu sein HKCR\*\shellex\ContextMenuHandlers, und ich kann nicht selbst entschlüsseln, wie diese Schlüssel funktionieren.
Iszi
Getestet und funktioniert unter Windows 7. Ich werde XP als weitere Frage veröffentlichen.
Iszi
2
@ luochen1990 Es ist die Indexnummer - welches Symbol aus der DLL wird verwendet. Hier ist eine Tabelle für shell32.dll mit den Symbolen
Siim K
4

... und wenn Sie möchten, können Sie das Standard- / Symbol verwenden, das Ihr Programm (exe-Datei) bereits verwendet.

Verwenden Sie einfach etwas wie das Folgende als Inhalt Ihres IconZeichenfolgenwerts, auf den @Slim K Sie in seiner Antwort hingewiesen hat:

"C:\Path\to\YourProgram.exe",0

Sublime Text 3 verwendet kein Symbol für die Kontextmenüoption. Also habe ich einen IconZeichenfolgenwert mit dem Inhalt hinzugefügt, den Sie im Screenshot sehen.

1

2

doofle
quelle
Was bedeutet die Zahl '0', die dem Pfad folgt?
luochen1990
@ luochen1990 Wie in der akzeptierten Antwort von Siim K erwähnt, ist dies die Indexnummer des Symbols in der DLL-Datei. In diesem Fall ist die Zahl Null das erste Symbol in der DLL. Sie können mehr über dieses Nummerierungssystem hier
Christian Sirolli