Як я можу додати значок до мого спеціального елемента контекстного меню в Windows 7?


9

Пов'язано: Як я можу додати програму до контекстного меню всіх файлів?

Я створив власний елемент контекстного меню, і він, здається, працює на всіх типах файлів - навіть за допомогою ярликів. (Вибір мого спеціального параметра виконує операцію над цільовим ярликом, а не .lnk-файлом.) Тепер я хотів би створити значок, щоб він виділявся. Моя антивірусна програма та Notepad ++, схоже, змогли це зробити, тому я знаю, що це можливо. Питання лише в тому, як?

Відповіді:


10

Відкрийте regedit.exe і знайдіть ключ, який ви створили для спеціального елемента меню.

Тепер створіть у ньому нове значення String і назвіть його Icon. Двічі клацніть по ньому та введіть шлях до власного файлу значків:

c: \ папка \ icon.ico

За бажанням ви можете використовувати файл shell32.dll Windows, як у моєму прикладі: Реєстр

Результат:

Значок у користувальницькому контекстному меню

Просто додаткова примітка - схоже, що цей метод працює в Windows 7 (і, напевно, Vista), але піктограма не з’явилася під час тестування на Windows XP


Дякуємо за відповідь та тестування на XP. Пізніше сьогодні мені доведеться зробити це. Також я помітив, що ваш метод, здається, трохи відрізняється від відповіді на моє попереднє запитання. (Див. Посилання у цьому питанні.) У попередній відповіді текст для пункту контекстного меню зберігається у назві ключа. У вашому воно зберігається у рядковому значенні в межах ключа. Чи є якась практична причина для різниці?
Ізі

@Iszi - не впевнений, чи є реальна різниця. Щойно я знайшов такий приклад
Сіім К

1
Здається, ти маєш рацію, що не працює на XP. Я не можу придумати, чому б цього не сталося, оскільки у мого AV та Notepad ++ все ще є піктограми. Здається, вони ховаються у своїх функціях HKCR\*\shellex\ContextMenuHandlers, і я не можу самостійно почати розшифровувати, як працюють ці клавіші.
Ізі

Тестується і працює в Windows 7. Я продовжую і розміщу XP як ще одне питання.
Іззі

2
@ luochen1990 Саме номер індексу - який значок із .dll використовується. Ось таблиця для shell32.dll з піктограмами та відповідними індексами: help4windows.com/windows_7_shell32_dll.shtml
Siim K

4

... І якщо ви хочете, ви можете скористатися значком за замовчуванням / тим самим, який вже використовує ваша програма (файл EXE).

Просто використовуйте щось на зразок нижче як зміст Iconзначення рядка, на який @Slim K вказував вам у своїй відповіді:

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

Sublime Text 3 не використовує піктограму для параметра контекстного меню. Тому я додав Iconзначення рядка із вмістом, який ви бачите на скріншоті.

1

2


що означає число "0", що слідує за маршрутом?
luochen1990

@ luochen1990, як згадується у прийнятій відповіді Сіймом К, це індексний номер піктограми у файлі DLL. У цьому випадку число нуль є першим значком DLL. Більше про цю систему нумерації ви можете прочитати тут
Крістіан Сіроллі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.