Как установить значок для этого меню правой кнопки мыши? - PullRequest
1 голос
/ 23 июля 2011

Я могу добавить новый элемент для folders right click menu, используя реестр:

HKEY_CLASSES_ROOT \ folder \ shell \ Ваше имя элемента

Но я не знаюкак установить иконку для созданного предмета так:

enter image description here

Может кто-нибудь мне помочь?

Ответы [ 2 ]

7 голосов
/ 08 августа 2011

Чтобы создать пользовательское контекстное меню со значком при нажатии на папку, выполните следующие действия:

  1. В разделе HKEY_CLASSES_ROOT \ folder \ shell \ создайте новый ключ: "MyContextMenu"
  2. В разделе HKEY_CLASSES_ROOT \ folder \ shell \ MyContextMenu отредактируйте ключ (по умолчанию), чтобы указать текст для отображения в контекстном меню: MyMenu
  3. Чтобы выполнить команду, когда выбрано меню, добавьте новое имя ключа «Команда»и установите команду для выполнения в ее значении (по умолчанию).Например: cmd.exe
  4. Теперь, чтобы установить значок, вы добавляете новое имя строкового значения Icon и устанавливаете его значение в * .ico, который вы хотите показать, или вы можете ссылаться на ico, встроенный в dll.используя [имя dll], [номер значка] Многие изображения окон по умолчанию находятся в imageres.dll.Поэтому для этого примера установите значение: c: \ windows \ system32 \ imageres.dll, 10

. Существует замечательный инструмент под названием iconviewer , который можно использовать для проверки значков.в дллсПосле того, как вы установите его, вы можете щелкнуть правой кнопкой мыши на dll, открыть его свойства и дополнительная страница с ее значками будет добавлена ​​на соответствующие страницы

1 голос
/ 05 августа 2011

Вы должны добавить иконку в этот ключ для отображения, когда пользователь нажал правую кнопку. Попробуйте написать ключ OpenWithProgIds, а затем создайте значение с именем (путем) вашего приложения. Пример для переработки:

TRegistry *key=new TRegistry(KEY_ALL_ACCESS);
    key->RootKey=HKEY_LOCAL_MACHINE;
    key->OpenKey("Software\\Classes\\CLSID\\{645FF040-5081-101B-9F08-00AA002F954E}\\shell", false);
    key->OpenKey("Prog_name", true);
    key->WriteString("Icon", ExtractFileDir(Application->ExeName)+"\\icon_prog.ico");
    key->OpenKey("command", true);
    key->WriteString("", ExtractFileDir(Application->ExeName)+"\\Program.exe");
    key->CloseKey();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...