注册表实现右键自定义多级菜单

给文件添加右键菜单的方法主要有修改注册表,编写COM组件两种方式,当然这个只是我知道的,或许还有其他我所不知道的方法。今天我要分享的是如何通过添加注册表来达到创建自定义菜单的目的。

在XP系统上通过注册表添加自定义菜单,只能创建一级菜单而且不能给菜单添加图标。WIN7及之后的系统支持注册表添加多级菜单并且可以添加菜单图标。下面是以WIN7为例进行说明添加的步骤:

1、打开注册表编辑器:开始,运行,输入regedit,回车 

2.找到[HKEY_CLASSES_ROOT\*\shell],右键添加一个项,这里我是用的test,然后test项下增加三个键:

icon="C:\music.ico",

MUIVerb="自定义菜单",

SubCommands=testSubMenu.0;testSubMenu.1;testSubMenu.2;testSubMenu.3

Icon是设置菜单图标,MUIVerb是菜单项名称,第三项要注意,分号分隔的是你要添加在二级菜单下的程序,MS规定二级菜单下最多只能添加16个项目,这里的二级菜单项如何设置,稍后解释。"icon"="<图标所在绝对地址>",MUIVerb="<一级菜单显示名称>",SubCommands="<二级菜单项一;二级菜单项二;二级菜单项三;二级菜单项四;二级菜单项五;...>"。

3.接下来开始设置二级菜单了,首先定位到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell] 

根据刚才添加的SubCommands的键值,每个分号分割的项目在这里以其名字新建项目,注意,名字一定要相同,否则不会成功!! 将其默认键值设为二级项目的显示名字,新建一个键命名icon,值为图标所在绝对地址,例如一级菜单项SubCommands第一个分号前的名字为testSubMenu.0,那么在[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell]下新建testSubMenu.0项,默认键值为"自定义二级菜单一",icon="C:\music.ico",然后在[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\testSubMenu.0]下新建command项,默认键值"C:\test.exe" "%1",即运行test.exe并将文件路径作为参数传递给test.exe。到此就添加了一个二级菜单项,依次添加n个项目(n<=16)

4.至此完成了 一个二级菜单的添加,其实到这里和软媒添加二级菜单的功能一样,但是我们可以用同样的方法再添加两个二级菜单,至此就完成了刚才假设要添加的三个菜单项。截图如下:


在Windows操作系统中,可以通过修改注册表来配置右键菜单(也称为上下文菜单),以添加自定义命令或程序。要支持多个传参,通常会在注册表中设置一个命令行操作,该操作可以接受多个参数。以下是配置注册表添加右键菜单项并支持多个参数的步骤: 1. 打开注册表编辑器:按下`Win+R`键,输入`regedit`,然后按`Enter`键打开注册表编辑器。 2. 定位到相应的键值:通常情况下,右键菜单项根据它的应用范围(如文件类型、特定文件夹、桌面等)放置在不同的键下。例如,为所有文件添加右键菜单项,可以定位到`HKEY_CLASSES_ROOT\*\shell`。 3. 创建新的右键菜单项:在`shell`下创建一个新的键,例如命名为`YourContextMenu`,用于定义菜单项的名称。 4. 定义菜单项显示的名称:在`YourContextMenu`下创建一个新的字符串值(默认值),输入你希望在右键菜单中显示的名称。 5. 创建命令键:在`YourContextMenu`下创建一个新的键,命名为`command`。 6. 设置命令行参数:在`command`键下,设置默认值为你的程序或命令行命令,包括所有需要传递的参数。参数之间使用空格分隔。 例如,如果你想通过右键菜单启动一个名为`myprogram.exe`的程序,并向它传递两个参数`arg1`和`arg2`,则可以在`command`键的默认值中设置如下: ``` "C:\Path\To\myprogram.exe" arg1 arg2 ``` 7. 保存并关闭注册表编辑器:修改完成后,关闭注册表编辑器。 8. 测试右键菜单右键点击任意文件或文件夹(取决于你设置的位置),检查你的菜单项是否已经出现,并验证传参是否正确。 注意:修改注册表可能会对系统造成不可预知的风险,操作前应确保备份注册表,或在虚拟机中测试。错误的注册表修改可能导致系统不稳定或无法启动。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值