Contextmenu 如何设置此右键单击菜单的图标?

Contextmenu 如何设置此右键单击菜单的图标?,contextmenu,registry,right-click,Contextmenu,Registry,Right Click,我可以使用注册表为文件夹右键单击菜单添加新项目: HKEY\U CLASSES\U ROOT\folder\shell\Your item name 但我不知道如何为这样创建的项目设置图标: 有人能帮我吗?您应该在该键中添加iconpath,以便在用户单击右键时显示。 尝试编写键OpenWithProgID,然后使用应用程序的名称(路径)创建值。 回收利用示例: TRegistry *key=new TRegistry(KEY_ALL_ACCESS); key->RootKey=

我可以使用注册表为文件夹右键单击菜单添加新项目:

HKEY\U CLASSES\U ROOT\folder\shell\Your item name

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


有人能帮我吗?

您应该在该键中添加iconpath,以便在用户单击右键时显示。 尝试编写键OpenWithProgID,然后使用应用程序的名称(路径)创建值。 回收利用示例:

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();

您应该在该键中添加iconpath,以便在用户单击右键时显示。 尝试编写键OpenWithProgID,然后使用应用程序的名称(路径)创建值。 回收利用示例:

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();

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

  • 在HKEY\U CLASSES\U ROOT\folder\shell\下创建一个新键:“MyContextMenu”
  • 在HKEY_CLASSES_ROOT\folder\shell\MyContextMenu下,编辑(默认)键以指定要在上下文菜单中显示的文本:MyMenu
  • 要在选择菜单时执行命令,请添加一个新的键名“command”,并将commmand设置为以其(默认)值执行。例如:cmd.exe
  • 现在,要设置图标,请添加一个新的字符串值名称图标,并将其值设置为要显示的*.ico,或者可以使用[dll名称]、[icon number]引用嵌入dll中的ico。许多默认windows图标都位于imageres.dll中。因此,对于本例,将值设置为:c:\windows\system32\imageres.dll,10

  • 有一个很好的工具叫做,可以用来检查DLL中的图标。安装后,您可以右键单击某个dll,打开它的属性,并在属性页中添加一个带有图标的额外选项卡,以便在单击文件夹时创建带有图标的自定义上下文菜单。请执行以下步骤:

  • 在HKEY\U CLASSES\U ROOT\folder\shell\下创建一个新键:“MyContextMenu”
  • 在HKEY_CLASSES_ROOT\folder\shell\MyContextMenu下,编辑(默认)键以指定要在上下文菜单中显示的文本:MyMenu
  • 要在选择菜单时执行命令,请添加一个新的键名“command”,并将commmand设置为以其(默认)值执行。例如:cmd.exe
  • 现在,要设置图标,请添加一个新的字符串值名称图标,并将其值设置为要显示的*.ico,或者可以使用[dll名称]、[icon number]引用嵌入dll中的ico。许多默认windows图标都位于imageres.dll中。因此,对于本例,将值设置为:c:\windows\system32\imageres.dll,10

  • 有一个很好的工具叫做,可以用来检查DLL中的图标。安装后,您可以右键单击某个dll,打开它的属性,并在属性页中添加一个带有图标的额外选项卡

    如何在代码中执行此操作已在链接问题中讨论过不再可用如何在代码中执行此操作已在链接问题中讨论过不再可用