lua脚本吧 关注:110贴子:116
  • 11回复贴,共1

【右键美化】——用注册表整理美化你的右键菜单

只看楼主收藏回复

先上两张图,给大家看看效果:


怎么样,大家是否有兴趣了解怎么做成这样效果的呢,让我们来开始学习吧!
首先介绍几个注册表中与右键有关的几个项:
HKEY_CLASSES_ROOT\*\shell\ 对所有文件有效
HKEY_CLASSES_ROOT\Directory\shell\ 对一般文件夹有效
HKEY_CLASSES_ROOT\Folder\shell\
对一般文件夹及系统文件夹有效(文件夹和驱动器)
HKEY_CLASSES_ROOT\Directory\Background\shell\ 在文件夹空白处右键弹出的菜单
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell 制作层叠菜单时用于存放子项名称及命令

接下来我们先分析一段代码:

filename:test.reg

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\notepad]
@ ="用我的记事本打开"
"command"="notepad.exe %1"
"icon"="imageres.dll,14"
"Position"="Top"


这是一个简单的右键菜单,当你右击一个文件时,右键菜单中就会有 用我的记事本打开 这个选项。如果该文件不可被记事本打开,则不会有反应。




1楼2013-02-26 12:44回复
    下面我们来看一个层叠菜单的例子:
    filename:MyRight.reg

    Windows Registry Editor Version 5.00
    [HKEY_CLASSES_ROOT\*\shell\SotKTama]
    "MUIVerb"="Name"
    "SubCommands"="Item1;Item2;|;Item3"
    "icon"="imageres.dll,15"
    "Position"="Top"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Item1]
    @ ="ItemName1"
    "icon"="imageres.dll,34"
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Item1\command]
    @ ="command1"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Item2]
    @ ="ItemName2"
    "icon"="imageres.dll,34"
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Item2\command]
    @ ="command2"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Item3]
    @ ="ItemName3"
    "icon"="imageres.dll,34"
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Item3\command]
    @ ="command3"
    这是一个完整的例子,他定义了一个名为Name的菜单组,组内有ItemName1,ItemName2,ItemName3 三个子项。并且ItemName2和ItemName3之间有一个分栏符。


    3楼2013-02-26 12:50
    收起回复
      好了,看了两个例子,相信大家都有点眉目了,不过我还是要大致说说(大家别嫌烦……)
      1、注册表文件书写规则:
      Windows Registry Editor Version 5.00
      (必须空一行)
      [主键]
      @="键值 " (默认键值)
      "键名"="键值" (字符串值)
      "键名"=hex:键值 (二进制值)
      "键名"=dword:键值 (DWORD值 32位)
      "键名"=hex(b):键值 (DWORD值 64位)
      "键名"=hex:键值 (二进制值)
      "键名"=hex(7):键值 (多字符串值)
      "键名"=hex(2):键值 (可扩充字符串值)
      删除主键:[-主键]
      删除键值:"键值"=-


      6楼2013-02-26 13:01
      回复
        现在我们来解释一下第二个例子 层叠菜单的例子
        [HKEY_CLASSES_ROOT\*\shell\SotKTama] 表示右键任意文件时的右键菜单
        换成[HKEY_CLASSES_ROOT\Directory\shell\] 就表示右键一般文件夹时的右键菜单
        "MUIVerb"="Name" 表示层叠菜单组的名字
        "SubCommands"="Item1;Item2;|;Item3" 表示层叠菜单组内的子项
        "icon"="imageres.dll,15" 表示层叠菜单组的图标
        "Position"="Top" 表示层叠菜单组位于右键菜单的位置 还有Bottom (Middle 没试过)


        7楼2013-02-26 13:08
        回复

          层叠菜单的子项:
          子项的名字必须与SubCommands中定义的名字一致
          "command"="程序路径" 如果用此程序打开文件,请加参数 即:
          "command"="程序路径 %1"
          "icon"="图标路径" imageres.dll 是win7的图标文件,
          imageres.dll,15中15指第15个图标

          注:空白处不占标号。


          9楼2013-02-26 13:31
          回复
            写到这我也不知道怎么写下去了,好像也没有什么可写的了,大家有哪里不明白的可以留言……
            在把我的MyRight.reg 分享给大家:
            http://pan.baidu.com/share/link?shareid=390495&uk=1614044461


            10楼2013-02-26 13:37
            回复
              楼主写的很好,顶!
              我这有EditPlus关于Reg的语法文件和一个模板文件,很适合楼主的教程。
              在此分享给大家。
              http://pan.baidu.com/share/link?shareid=331486&uk=1931229272
              @梦到山阴戏蕙仙
              @冷冷的可


              IP属地:辽宁11楼2013-02-26 14:49
              收起回复
                魔方快捷组只有一个,而这个可以做很多的


                IP属地:辽宁来自Android客户端13楼2013-02-27 07:45
                回复

                  好悲剧啊,小号被封了?@冷冷的可


                  IP属地:辽宁14楼2013-02-27 13:04
                  回复
                    大家还可以这样玩:


                    IP属地:辽宁15楼2013-02-27 16:02
                    回复