Windows特定文件添加右键菜单(二)

给右键添加菜单项,微软首先推荐静态方式,即给文件类型或者系统子健添加一个conmmand命令

如果要添加一个右键菜单项,首先考虑添加范围,1)某一系统子健(系统所有文件、系统所有目录、系统空白右键、shift右键等);2)某一文件类型添加

  • 系统子健添加

Windows特定文件添加右键菜单(二)
常用的子健:
HKEY_CLASSES_ROOT*:系统所有文件,右键系统任一文件都会添加右键菜单
HKEY_CLASSES_ROOT\AllFilesystemObjects:系统所有文件和文件夹,右键任一文件或者文件夹都会添加右键菜单
HKEY_CLASSES_ROOT\Folder:系统所有文件夹,右键系统任一文件夹都会添加右键菜单
HKEY_CLASSES_ROOT\Directory:系统所有目录,右键系统任一文件夹都会添加右键菜单
HKEY_CLASSES_ROOT\Directory\Background:系统文件夹空白处右键,在文件夹内空白处右键都会添加右键菜单
其他详情参考MSDN

具体在何处添加,根据自己需求处理,有可能会在多处都添加;有兴趣的可以仔细看一下自己的注册表,或者用“右键管理工具”把右键功能全部列出来,有的右键可能在多个子健下都有添加,或者同一类型的右键功能可能是在不同子健下添加的

以HKEY_CLASSES_ROOT*为例
Windows特定文件添加右键菜单(二)
效果如下所示
Windows特定文件添加右键菜单(二)

command数据可以添加参数,具体使用细节可以查考相关资料,下面给上述添加一个参数接受文件名称,在命令之后添加%1接受文件名称

Windows特定文件添加右键菜单(二)

  • 某一文件类型添加

    给某一文件类型添加右键菜单,首先要注册文件类型,给系统注册自己的文件类型,指明文件后缀名
    Windows特定文件添加右键菜单(二)
    同时添加文件关联子项,注册右键菜单
    Windows特定文件添加右键菜单(二)
    效果如下
    Windows特定文件添加右键菜单(二)

  • 特定文件添加右键菜单

前面示例都是如何添加文件菜单,但是都是给某一类型文件添加的右键菜单,如果想给某个特定文件添加右键菜单可以通过添加值“AppliesTo”来实现简单过滤
Windows特定文件添加右键菜单(二)
因此我们可以给command添加子健AppliesTo限定我们右键添加的条件,如果一个文件名称中包含exampleText1,那么此右键功能是可以的
Windows特定文件添加右键菜单(二)
上述三个文件只有在右键”myTest.MyFileType”的时候才会有右键菜单,右键其他两个不会有右键菜单

AppliesTo的局限性在于只支持win7之后的系统,win7之前的系统不支持