最近项目中要用到c#并且要注册鼠标点击右键菜单,在这里总结了几种方法以便记录

效果图:

1,reg注册,创建.reg文件,内容如下

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\disk]  (针对文件所有文件)
"MUIVerb"="云盘"
"SubCommands"="logs;addremark;searchfile" (子菜单,对应,'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\logs')
"Position"="bottom"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\logs] (子菜单)
@="查看历史记录"
"Icon"="d:\\WindowsFormsApp1.exe"(显示图片)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\logs\command]
@="WinSshFS.exe  \"%1\" logs" (点击时调用到程序'\"%1\"和 logs'是传递到参数)

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\addremark]
@="添加备注"
"Icon"="d:\\WindowsFormsApp1.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\addremark\command]
@="WinSshFS.exe \"%1\" addremark"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\searchfile]
@="搜索文件"
"Icon"="d:\\WindowsFormsApp1.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\searchfile\command]
@="WinSshFS.exe \"%1\" searchfile"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\searchtokms]
@="知识库中搜索"
"Icon"="d:\\WindowsFormsApp1.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\searchtokms\command]
@="WinSshFS.exe search searchtokms"

[HKEY_CLASSES_ROOT\Directory\shell\disk] (针对所有文件夹)
"MUIVerb"="云盘"
"SubCommands"="logs"
"Position"="bottom"

[HKEY_CLASSES_ROOT\Directory\Background\shell\disk] (针对点击文件夹空白处)
"MUIVerb"="云盘"
"SubCommands"="searchtokms"
"Position"="bottom"

1,bat注册,其实和reg注册脚本一样.

创建.bat文件,内容如下(执行bat文件时需传递,可执行文件路径)
@echo off

set processdir=%1

if "%processdir%"=="" (exit)

set percent=%%
reg add "HKCR\*\shell\disk" /v MUIVerb /t REG_SZ /d "网盘"   /f
reg add "HKCR\*\shell\disk" /v SubCommands /d "logs;addremark;searchfile"  /f
reg add "HKCR\*\shell\disk" /v Position /d "bottom"  /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\logs" /ve /d "查看历史记录" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\logs\command" /ve /d "%processdir% \"%percent%1\" logs" /f

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\addremark" /ve /d "添加备注" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\addremark\command" /ve /d "%processdir%  \"%percent%1\" addremark" /f

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\searchfile" /ve /d "搜索文件" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\searchfile\command" /ve /d "%processdir%  \"%percent%1\" searchfile" /f

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\searchtokms" /ve /d "知识库中搜索" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\searchtokms\command" /ve /d "%processdir%  \"%percent%1\" searchtokms" /f

set directoryreg="HKCR\Directory\shell\disk"
reg add "%directoryreg%" /v MUIVerb /t REG_SZ /d "网盘"   /f
reg add "%directoryreg%" /v SubCommands /d "logs"  /f
reg add "%directoryreg%" /v Position /d "bottom"  /f

set directoryrebackgroundreg="HKCR\Directory\Background\shell\disk"
reg add "%directoryrebackgroundreg%" /v MUIVerb /t REG_SZ /d "网盘"   /f
reg add "%directoryrebackgroundreg%" /v SubCommands /d "searchtokms"  /f
reg add "%directoryrebackgroundreg%" /v Position /d "bottom"  /f

window注册鼠标右键菜单,及子菜单的更多相关文章

  1. 安卓开发笔记——Menu菜单组件(选项菜单,上下文菜单,子菜单)

    菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu).上下文菜单(ContextMenu)和子菜单(SubMenu). 菜单的实现 ...

  2. ASP.NET MVC动态生成网站菜单及子菜单

    在开发ASP.NET MVC网站时,Insus.NET想实现动态产生网站的主菜单及子菜单. 你需要在网站管理后台管理此2张表(Menu,SubMenu)的信息,添加,删除,编辑,更新等. Sequen ...

  3. Sharepoint/Project Server 看不到“安全性”菜单以及子菜单

    在Sharepoint/Project Server 构建后,左侧看不到看不到“服务器设置”菜单,在设置菜单后左侧出现“服务器设置”菜单,但是依然在右侧看不到“安全性”菜单以及子菜单. (这个图是借的 ...

  4. Android 菜单之子菜单SubMenu

    子菜单就是在点击了菜单中的选项后弹出的要对菜单中选项操作的菜单           他的操作与之前的两种类型的菜单操作差不多 动态添加 @Override public boolean onCreat ...

  5. MVC 前台获取三级菜单及子菜单

    1.在后台将所有的菜单获取出来,代码如下: public ActionResult Index() { //所有商品分类 var oneMenu = _baseGoodsCategory.FindLi ...

  6. jQuery/CSS3大屏下拉菜单 自定义子菜单内容

    这是一款样式很酷的jQuery/CSS3下拉菜单,首先这款CSS3菜单是宽屏的,主要是下拉菜单非常大气,更重要的是,下拉菜单的内容可以自己定义,也就是说,下拉菜单中可以定义菜单.图片等HTML元素,是 ...

  7. 注册鼠标右键CMD

    Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\Directory\shell\runas] [HKEY_CLASSES_ROOT\D ...

  8. Android开发菜单以及子菜单

    package com.example.androidtest; import android.app.Activity; import android.os.Bundle; import andro ...

  9. el-menu菜单 -- unique-opened 子菜单唯一性失效

    总结: 点击的是  el-sub-menu . 所以  el-sub-menu 的唯一性是必须的.否则 unique-opened 属性不生效

随机推荐

  1. [POJ1220]NUMBER BASE CONVERSION (高精,进制转换)

    题意 任意进制之间的高进的转换 思路 相模倒排,高精处理 代码 我太弱了,下面附一个讨论里发的maigo思路的代码 ],A[]; ],d[]; main(){ for(scanf("%d&q ...

  2. d4-01

    一.字典 1.1 var dict = {"name":"zhangsan"}  定义字典 1.2 dict.name     取得name的值 1.3 del ...

  3. 使用Callable接口创建线程和使用线程池的方式创建线程

    1.使用Callable接口的方式实现多线程,这是JDK5.0新增的一种创建多线程的方法 package com.baozi.java2; import java.util.concurrent.Ca ...

  4. Lock锁方式解决线程安全问题

    在JDK5.0之后新增加了一种更强大的线程同步机制---通过显示定义同步锁来实现线程同步解决线程安全问题.同步锁使用Lock对象充当. java.util.concurrent.locks.lock接 ...

  5. FloatingActionButton的使用

  6. window 日志清楚

    @echo offset srcDir="D:\ApplicationLogs"set daysAgo=15forfiles /p %srcDir% /s /m *.* /d -% ...

  7. 6.6 Pandora 实操 - API/SDK

    创建实时仓库 连接日志仓库 点击到工作流查看 通过 Java sdk 打数据 通过 java sdk 对应字段打数据,先打到实时仓库(消息队列),对应再会打到日志仓库(做存储). 代码见 Sequen ...

  8. textarea 中的换行符

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. day 23 二十三、对象方法,类方法,封装,绑定方法

    一.对象的特有名称空间 __init__方法会在实例化对象时被调用 1.会为实例化的对象形成空的名称空间 2.就是一个方法,可以被传参,在类名(实参)这种方式下调用并传参 __init__(self ...

  10. Tarjan求割点 || Luogu P3388 【模板】割点(割顶)

    题面:P3388 [模板]割点(割顶) 题解:无 代码: #include<cstdio> #include<iostream> #include<cstring> ...