前言
在Windows系统中,只要对着文件(夹)单击右键,就会弹出一个快捷菜单,里面有对该文件(夹)的一些常用操作命令。通常右键弹出的菜单都是系统的或者是安装了第三发软件包后创建的。那如果自己写了一些程序,可以添加到菜单列表里吗?-- 可以的。
以下给图片(png/jpg/jpeg/webp)
文件添加右键菜单进行举例
操作步骤
1、首先准备一个程序
我这里使用的是一个自己开发的Webp图片格式命令行工具webperc.exe
点击下载
2、编写注册表脚本
编写Webperc.reg
点击下载 保存到本地,可以用文本文件打开,切记别立即执行,还需要稍微进行修改。
3、适当修改注册表脚本和命令行脚本
3.1、配置icon或者删除不配
找到所有如下内容的行,修改icon图片地址或者彻底删除行
"icon"="F:\\Workspace\\AndroidStudio\\Personal\\WebpBatchProcessor\\webper.ico"
3.2、配置文件类型
找到所有WPS.PIC.*
的行, 如下:
[HKEY_CLASSES_ROOT\WPS.PIC.png\shell\Webperc]
.......
[HKEY_CLASSES_ROOT\WPS.PIC.jpg\shell\Webperc]
.......
[HKEY_CLASSES_ROOT\WPS.PIC.jpeg\shell\Webperc]
.......
[HKEY_CLASSES_ROOT\WPS.PIC.webp\shell\Webperc]
.......
因为我电脑安装了WPS,所以这里的文件格式比较奇怪。
WPS.PIC.png
、WPS.PIC.jpg
、WPS.PIC.jpeg
、WPS.PIC.webp
分别对应的是png、jpg、jpeg、webp
后缀的图片文件。
如果你没有安装其他程序,可以用.png、.jpg、.jpeg
和.webp
一一替代它们。
这里很好理解,它其实就是文件的后缀名。如果你要处理特别的文件后缀,例如example.tcttx
文件,以.tcttx
后缀的文件,想在这个文件上右键,就可以用.tcttx
替代。
例如这样
[HKEY_CLASSES_ROOT\.tcttx\shell\Webperc]
很好理解对不对,为什么这里要有4个类似的脚本,是因为要处理4个文件类型(png、jpg、jpeg和webp)
,少掉其中一个,那少的那个文件就不会出现菜单。
也可以使用*代替,表示匹配所有的文件后缀
[HKEY_CLASSES_ROOT\*\shell\Webperc]
3.3、配置菜单名字
所有"MUIVerb"=
后面的部分就是一级菜单的名字
@=“**”
其实是二级菜单的名字
3.4、配置二级菜单数量
如下表示有5个子项菜单
"SubCommands"="Webperc.0;Webperc.1;Webperc.2;Webperc.3;|;Webperc.4"
每项通过;分割,其中有一项|
表示一个分割线
(可删除)。
每一项都对应有如下脚本
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Webperc.0]
@="100%"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Webperc.0\command]
@="D:\\PATH\\cmd\\webperc.exe -q 100 -j 1 -p \"%V\""
仔细观察其中是有"Webperc.0"
的,如果需要对项的数量进行增删,则相应与之匹配的这两项就要进行增删。
这里的
【Webperc.0~4】
5个内容可以任意更改,没有任何要求,唯一的要求就是不能和已有的项冲突了,建议是取一个不容易冲突的名字,然后他对应的脚本也要随之更改。
3.5、配置命令
接上条,每个子项都有command
行,其底下@=
所在的内容就是用户点击这个菜单子项后电脑会执行的命令。这需要根据命令输入参数进行特别的配置,灵活更改。
注意需要加转义字符:使用 \\表示\ 和\" 表示"。
还有这里需要指定exe程序的全路径。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Webperc.0\command]
@="D:\\PATH\\cmd\\webperc.exe -q 100 -j 1 -p \"%V\""
3.6、双击运行脚本
一切配置修改完毕后,双击运行脚本,不需要重启电脑,立即生效。