如何为此右键菜单设置图标?

时间:2011-07-23 09:37:57

标签: contextmenu registry right-click

我可以使用注册表为folders right click menu添加新项目:

  

HKEY_CLASSES_ROOT \ folder \ shell \您的商品名称

但我不知道如何为这样的创建项目设置图标:

enter image description here

是的,有人能帮助我吗?

2 个答案:

答案 0 :(得分:7)

要在单击文件夹时创建带图标的自定义上下文菜单,请按以下步骤操作:

  1. 在HKEY_CLASSES_ROOT \ folder \ shell \下创建一个新密钥:“MyContextMenu”
  2. 在HKEY_CLASSES_ROOT \ folder \ shell \ MyContextMenu下编辑(默认)键以指定要在上下文菜单中显示的文本:MyMenu
  3. 要在选择菜单时执行命令,请添加新的键名“Command”,并将命令设置为以其(默认)值执行。例如:cmd.exe
  4. 现在设置图标,添加一个新的字符串值名称Icon并将其值设置为要显示的* .ico,或者您可以使用[dll的名称]引用嵌入在dll中的ico,[图标编号]很多默认的窗口图标都在imageres.dll中。因此,对于此示例,请将值设置为:c:\ windows \ system32 \ imageres.dll,10
  5. 有一个名为iconviewer的好工具可用于检查dll中的图标。安装后,你可以右键单击一个dll,打开它的属性和一个额外的选项卡,它的图标将被添加到图片

答案 1 :(得分:1)

您应该在此键中添加iconpath,以便在用户单击右键时显示​​。 尝试编写关键的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();