请问如何自定义添加桌面右键菜单的小图标呢?
可以实现如下图的360杀毒的小图标效果:
[解决办法]
试一试在它的安装目录可否找到它,用同名文件替换
[解决办法]
我的目的是,自己添加右键的功能,比如上图的记事本Ⅱ是我添加了的右键功能,但是没有图标,我觉得欠缺了点,所以我想实现在它的旁边再添加一个图标去
[解决办法]
注入一个DLL到exploer中
[解决办法]
可以详细点说明吗?
[解决办法]
Shell Extension Context Menu
[解决办法]
有没有完整的说明清楚哟
[解决办法]
rivate Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long
Const MF_BYPOSITION = &H400&
Private Sub Form_Load()
mhandle = GetMenu(Form1.hwnd)
'MsgBox mhandle 取得窗体菜单句柄
shandle = GetSubMenu(mhandle, 0) ''这里是第一项菜单的句柄
'MsgBox shandle 取得菜单项句柄
iret = SetMenuItemBitmaps(shandle, 0, MF_BYPOSITION, Image1.Picture, Image1.Picture)
'MsgBox iret 设置相应菜单图标,下面的子菜单
iret = SetMenuItemBitmaps(shandle, 1, MF_BYPOSITION, Image2.Picture, Image2.Picture)
MsgBox iret
End Sub
上面的msgbox 做测试用
下面的函数是对菜单
[解决办法]
在注册表父项新建一个名为[Icon]的[字符串值],值为图标文件路径和文件名。
比如:
右键单击文件夹时的在[CMD 窗口中打开]的图标就是Shell32.dll里面的第三个图标。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Folder\shell\在 CMD 窗口中打开]
"Icon"="%systemroot%\\system32\\shell32.dll,2"
[HKEY_CLASSES_ROOT\Folder\shell\在 CMD 窗口中打开\command]
@="cmd.exe /k cd %1"
[解决办法]
将要添加的图标以资源的方式加入到你的dll,然后创建菜单子项的时候一同添加,我可以给你一段C# 代码,VC 不会
//创建子菜单
HMenu submenu = Helpers.CreatePopupMenu();
Helpers.AppendMenu(submenu, MFMENU.MF_STRING, new IntPtr(idCmdFirst + id++), "添加的子菜单");
//将子菜单插入到上下文菜单中
Helpers.InsertMenu(hMenu, 1, MFMENU.MF_BYPOSITION
[解决办法]
MFMENU.MF_POPUP, submenu.handle, "添加的主菜单");
//为菜单增加图标
Bitmap bpCopy = Resource1.Newegg_Virtual_Driver;
Helpers.SetMenuItemBitmaps(submenu, 0, MFMENU.MF_BYPOSITION, bpCopy.GetHbitmap(), bpCopy.GetHbitmap());