在资源管理器中,如何动态增加右键菜单,类似于Winrar的效果,当右键点击一个未压缩文件时,显示与压缩相关的菜单项,当右键点击一个压缩文件时,显示与解压相关的菜单项。这个如何实现?

解决方案 »

  1.   

    http://www.xker.com/edu/os/021/06101510463686453.html
      

  2.   

    ShellExt 嘛
    太简单了
    http://hi.baidu.com/umu618/blog/item/a9c2f0ed327a7b4f78f0553c.html
      

  3.   

    http://topic.csdn.net/t/20041112/22/3548808.html
      

  4.   

    修改右键菜单应该在注册表中,具体的说,是在HKEY_CLASSES_ROOT根键下(这里可是右键菜单中所有命令的根源哦!)。展开该根键,其下的子键主要有两种:扩展名键(.+扩展名)和类定义键(如图1)。一般地说,只要是在windows系统中已注册过的扩展名,在HKEY_CLASSES_ROOT下均有“·该扩展名”子键 ,记录该扩展名的一些信息,对某种特定类型的文件的右键菜单的修改,便是在该键或“扩展名file”键下的操作。 
    一、在所有的文件右键菜单中加入命令 如果你的系统上安装有Winzip、UltraEdit等,当你对任一文件点右键时,都会有“Add to zip”、“UltraEdit-32”等命令(当然,Winzip稍有不同,我将在后面讲到)。它的添加方法是: 
    1.打开“HKEY_CLASSES_ROOT\*”; 
    2.在其下新建“shell\命令\command”分支,再将command的键值设为执行该命令时所用的可执行程序的绝对路径,并在其后加“%1”即可。 例:在“HKEY_CLASSES_R OOT\*”下新建“shell\用写字板打开\command”子键,将command的键值设为“c:\windows\notepad.exe %1”,就会在右键菜单中出现“用写字板打开”的命令了(如图2)。 说明: 1. 要删除该类命令,只需将“命令”子键删除即可; 2. 有的人或许会问他按我写的去做,但是得到的为何与我的有一些不同,这就是我的命令里有快捷键(N),只要在“用写字板打开”后加入“(&N)”即可。 
    二、在特定文件类型的右键菜单中加入命令 刚才说到了Winzip这个软件,对普通的文件类型,它的右键菜单中有“Add to zip”,但是对它所支持的压缩文件类型,如*.zip、*.cab、*.rar在其右键菜单中有“Open with Winzip”、“Extract to”、“Extract to folder”、“Create Self-Extractor(.EXE)” 等命令,对于自解压性安装文件(如OICQ99b),其右键菜单中有“Run with Winzip”命令。下面是特定文件类型的右键菜单的命令添加方法(以在mp3文件的右键菜单中加入Play with winamp为例): 
    1.打开“HKEY_CLASSES_ROOT\mp3_auto_file”主键; 
    2.在其下新建“shell\Play with Winamp(&P)\command”,将command的键值设为“C:\Program files\winamp\winamp.exe %1” 。 说明:当有多个软件可以播放mp3文件时,我们可以在右键菜单中添加多条命令,如加入“Play with Unreal”等命令,但是我们如何将某一条命令定义为默认操作(即右键菜单中的黑体命令)呢? 你一定会说,很简单的事情吗!将mouse移向一mp3文件,在按右键的同时按shift,在右键菜单中选“打开方式“便可更改,但是这是错误的,不信你试试看,这样只有在右键菜单中选“打开”时才会用你所选择的程序来打开它,否则,它仍旧一如继往。因为它的默认操作不是“打开“这条命令。真正的方法是将shell的默认键值改为你所想执行的命令,例如将shell的键值改为“Winamp”,