在windows右键菜单中加入自己的程序 [转载]

原文链接: http://blog.csdn.net/marklr/article/details/4006356

在windows右键菜单中加入自己的程序

标签: windowsattributes扩展commandshell文档

2009-03-20 08:44 3369人阅读 评论(1) 收藏 举报

 分类:

BCB(12) 

修改右键菜单应该在注册表中,具体的说,是在HKEY_CLASSES_ROOT根键下(这里可是右键菜单中所有命令的根源哦!)。展开该根键,其下的子键主要有两种:扩展名键(.+扩展名)和类定义键。一般地说,只要是在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”,就会在右键菜单中出现“用写字板打开”的命令了。     
  说明: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”。     
  还有,不知道你发现了没有,我在前面的例子中用的是“Play   with   Winamp”命令,而在这里用的是“Winamp”,是不是有点不对应呢?说到这里,真是让我心酸,本来我在txt文档中用shell进行默认操作的转换时(转换open与print)挺成功的,但是一转换“Play   with   Winamp”与“Play   with   Unreal”便失败,总是转换不过来,最后才明白这可能是“瘟酒吧”的一个bug,它要求转换时主键的键名为单个字符串时才有效。对汉字与英文的组合也有效,不过中间可不能有空格(不知道这是否与我的Win98是D版有关?)。     
  如果你认为上面的方法不太方便且过于复杂,其实在Windows中还提供了不用操作注册表的更为方便安全的方法:打开一个文件夹,选“查看/文件夹选项/文件类型”,   在这里你将会找到所有已经注册的文件类型,选择“mp3文件/编辑”,看到操作下面的“新建”、“编辑”、“删除”、“设为默认值”这四个按钮没有?不用我再教你了吧!嘿嘿。     
    
  三、在所有的文件夹右键菜单中加入命令   
  如果你用过Acdsee这个软件,就会发现在文件夹的右键菜单中总有“Browse   with   acdsee”这一命令,同类的还有Pc-cillin中的Trend   Pc-cillin   98命令,下面再该类命令的添加方法:   
  1.打开“HKEY_CLASSES_ROOT/diretory/shell”主键;   
  2.在其下新建“命令/command”……下面不用再说了吧!   
  说明:1.如果你细心一下的话,你将会发现其实在驱动器的右键菜单中,也有“Browse   with   acdsee”   “Trend   Pc-cillin98”等命令,驱动器也是特殊的文件夹,但是通过上面的方法是无法在驱动器的右键菜单中加入命令的。如果要在其中加入命令,须对“HKEY_CLASSES_ROOT/drive/shell”主键进行操作;   
  3.在“HKEY_CLASSES_ROOT”主键下还有一个folder子键,顾名思义,对它的操作将影响所有的文件夹,包括回收站,切记切记!   
    
  四、在所有的文件与文件夹的右键菜单中加入命令   
  如果你自己开发了一个程序,它的操作对象是文件和文件夹,因此你想在所有的文件和文件夹的右键菜单中加入特定的命令进行操作,这就得看下面的了。   
  打开“HKEY_CLASSES_ROOT/AllFilesystemObjects”主键,在其下新建“shell/命令/command”,以下操作同前。     
  需要指出的是这只是一种解决方法,如果大家看我所抓下的图,会发现总有一个“IconView”命令,出现在所有的文件和文件夹的右键菜单中,但是这可不是用这种方法形成的,不妨作一下对比,这条命令是通过该软件中的应用程序扩展库iv_shext.dll扩展而来,因此它出现在右键菜单的中部。而不是在顶部   。(什么?让我讲一下这种方法?)由于这种方法涉及到编程方面的内容,限于篇幅和主题,我就不讲这种方法了(嘘!小声点,其实我也是不会。)   
    
  五、一些特殊命令的添加与删除   
  1.资源管理器   
  在Windows系统中,普通文件夹、驱动器、回收站等的右键菜单中都有“资源管理器“命令,如果你只想在驱动器中保留该命令,可以先在“HKEY_CLASSES_ROOT/folder/shell”主键中删除explore子键,然后在“HKEY_CLASSES_ROOT/drive/shell”主键中新建“explore/command”子键,令commmand的键值为“C:/WINDOWS/Explorer.exe/e,/idlist,%I,%L”怎么样,成功了吧!   
  2.清空回收站   
  在Windows系统中,只有在回收站的右键菜单中才有“清空回收站”的命令,是不是太不方便了呢,好,我们可以经过一番改造,让所有的文件菜单中都有“清空回收站”的命令,follow   me!   
  我们的思路是先找出“清空回收站”这个命令的来源,然后将其照搬到“HKEY_CLASSES_ROOT/*”下即可。好,还是先来找吧,我找呀找,终于找到了!——再教你一招,就是一些特殊的命令(特别是第三方提供的软件),都是由应用程序扩展库(.DLL)扩展而来,在注册表的“shellex/ContextMenuHandlers”中便能找到它的痕迹。   我们打开“HKEY_CLASSES_ROOT/CLSID/{645FF040-5081-101B-9F08-00AA002F954E}   /shellex/ContextMenuHandlers”,可以发现其下有一名为“{645FF040-5081-101B-9F08-00AA002F954E}”的子键,这就是“清空回收站”命令的根源了。   
  找到了根源,就容易多了,在“HKEY_CLASSES/ROOT/*/shellex/ContextMenuHandlers”下新建一键名为“{645FF040-5081-101B-9F08-00AA002F954E}”的子键,怎么样,够酷吧!   
  3.新建命令的子命令的添加与删除   
  不知道有没有遇到这种情况:你经常自己手工编写网页,在单位的机器上的新建命令中有“新建html文档”的命令,但是你的机器上却没有,还有,随着各种软件的不断增加,你的新建命令弹出子命令的时间越来越长,够呛的吧!   不要紧,不用急,让我来帮你把该出来的叫出来,不该来的让它回去!   
  打开“HKEY_CLASSES/ROOT/.htm”,添加一主键shellnew,然后新建字符串值NullFile   ,键值为空,你现在再对桌面点右键,看看新建,是不是多了一点什么?   至于删除,想各位不致让我多说了吧!   
  4.剪切、复制、粘贴等命令的添加   
  注意,我只是谈剪切、复制、粘贴等命令的添加,也就是说对右键菜单中没有这些命令的某些对象,可以添加,而对那些本来有就这些命令的对象,就连删除它们,我都无能为力。   
  好,我现在以回收站为例,来进行剪切、复制、粘贴等命令的添加,具体地说,有“打开、剪切、复制、粘贴、重命名、删除、属性”等命令的添加。   先打开“HKEY_CLASSES_ROOT/CLSID/{645FF040-5081-101B-9F08-00AA002F954E}”主键,你会发现有“shellfolder”子键,在该子键下新建二进制值attributes,它的键值就决定了这些命令在右键菜单中的显示与隐藏。具体如下:   
  命令   键值   
  打开   00   00   00   20   
  剪切   02   00   00   00   
  复制   01   00   00   00   
  粘贴   00   01   00   00   
  删除   20   00   00   00   
  重命名   10   00   00   00   
  属性   40   00   00   00   
  如果你要显示某些命令,只需将该命令所对应的键值相加,结果作为attributes的键值即可。例如:当attributes值为00   00   00   00(默认)时,将不显示以上命令,当为73   01   00   20时,将显示所有的命令。现在好了,可以将“回收站“改为你所想改的名称了,还可以将“废物”粘贴到回收站了(不过我看这倒没有多大的作用,是吗?)     
  5.“发送到”及其菜单   
  有的文件夹(如我的文档)的右键菜单中没有“发送到”这条命令,我们可以给它添加上去,方法可以参考“清空回收站”命令的添加方法。就是打开“   HKEY_CLASSES_ROOT/CLSID/{450D8FBA-AD25-11D0-98A8-0800361B1103}/shellex/ContextMenuHandlers”,在其下新建“{7BA4C740-9E81-11CF-99D3-00AA004AE837}”子键,就可以了。     
  至于“发送到“的菜单,是不需要在注册表中对其进行操作的,它的根源是“C:/windows/SendTo”这个文件夹,你只需在这个文件夹内新建一个快捷方式,让它指向你所想要发送到的文件夹,就OK了。   
  6.查找   
  在Windows系统中,普通文件夹及驱动器的右键菜单中有“查找……”这条命令,如果我们要在回收站中寻找误删除的文件,而此时回收站中的文件又多的话,我们就可以在回收站的右键菜单中加入“查找……”这条命令。具体方法可以参考2,5。只是需要新建的子键为“{61E218E0-65D3-101B-9F08-061CEAC3D50D}”。只不过命令变成了“文件或文件夹……”

时间: 2024-12-19 13:53:32

在windows右键菜单中加入自己的程序 [转载]的相关文章

[改]在windows右键菜单中加入“新建Python File文件”并创建模板

1.首先写好模板文件,随便保存在一个地方,比如我是"D:\Python27\foo.py"; 2.打开注册表(regedit),找到 [HKEY_CLASSES_ROOT] -> [.py] (没有的话,自己新建项.py); 3.在 [.py] 下新建项 [ShellNew] (已经有的话就删掉重建); 4.在 [ShellNew] 下新建 字符串值 ,名称为 FileName ,键值为模板文件的绝对路径,比如我的是 D:\Python27\foo.py ; 在右键新建菜单中就会

在windows系统的文件右键菜单中增加“命令提示符”

本实用小工具能够在windows系统的文件右键菜单中增加“命令提示符”,方便快速进入制定文件的命令提示窗口,避免逐层输入或复制文件夹路径,极其实用. 工具下载地址如下:360云盘(访问密码:5b71) 下载的文件名为windows文件夹右键菜单增加“命令提示符”.reg,是一个注册表文件,直接双击文件即可导入注册表,然后右键点击你的文件夹就可以看到“命令提示符”菜单了.

删除桌面右键菜单中无用的菜单项

删除桌面右键菜单中无用的菜单项:使用regedit打开注册表,然后打开HKEY_CLASSES_ROOT\Directory\Background\shell键项,在其中找到你想要删除的菜单,删除即可. 其他右键菜单项的删除:http://jingyan.baidu.com/article/86112f13342b64273797879c.html 电脑左下角:开始——运行“打开”框中键入“regedit”步骤/方法一: 开始——运行里面输入: regsvr32 /u igfxpph.dll 确

Windows右键菜单设置与应用技巧

http://blog.163.com/lee_honleon/blog/static/555251522008014258896/ 需要修改注册表,挺麻烦的.最好还是把迅雷卸了重装,不会影响什么,一会就好了. 如果你一定要改,我这有篇相关文章,给你作参考. 注意,改之前一定先给注册表做个备份,以免以外发生. 一.右键菜单大揭密 在Windows系统中,只要对着桌面或是文件(夹)单击右键,就会弹出一个快捷菜单,里面有对该文件(夹)的一些常用操作命令,通过右键菜单,可以方便用户对文件的某些操作.不

在右键菜单中添加用Jupyter Notebook打开

在右键菜单中添加用Jupyter Notebook打开 为了把 Jupyter 的工作目录指定到某一个文件夹下,每次都要启动 CMD 终端, 然后激活 Anaconda 环境,再启动 Jupyter Notebook ,麻烦至极. 所以做了下面这个脚本,把启动 Jupyter 添加到右键菜单中,这样每次启动 Jupyter 通过点点鼠标就可以了. 新建一个文件,命名为open-with-jupyter.reg,文件编码选择gbk或gb2312不然肯能会出现乱码. 然后把下面的代码粘贴进去,保存后

右键菜单中增加Notepad++选项

一般情况下,从notepad++官网下载绿色版(免安装的压缩包),解压后可以直接使用,但是鼠标右键菜单中没有notepad++选项,不是很方便.下面介绍一种手动方法将notepad++添加到鼠标右键菜单中. 假设Notepad++安装在:    C:\Program Files\Notepad++\文件完整路径:   C:\Program Files\Notepad++\notepad++.exe 1.运行regedit打开注册表:2.打开HKEY_CLASSES_ROOT\*\Shell:3.

Win10如何在右键菜单中添加“显示/隐藏文件”选项?

随着Win10系统的发布,一些用户已经升级到Win10系统,我们在使用Win10系统时经常会找不到所需的文件,也不知道怎么回事,估计是被隐藏起来了.遇到这样的问题要如何解决?那Win10如何在右键菜单中添加“显示/隐藏文件”选项呢?现在小编就和大家说一下Win10在右键菜单中添加“显示/隐藏文件”选项的方法. 具体步骤如下: 1.打开“此电脑”,点击工具栏中的[查看]按钮: 2.在右侧通过勾选或去掉[皇冠hg0088]即可打开或关闭 显示隐藏文件了. Win10在右键菜单中添加“显示/隐藏文件”

python实现应用程序在右键菜单中添加打开方式

最近项目组开发的一个小工具想要在右键菜单中添加打开方式,以有道云笔记为例进行了需求拆解和代码编写 1.需求拆解: 如何实现手动添加右键菜单的打开方式: Step1:打开注册表编辑器,Win+R->输入 "regedit" Step2:在HKEY_CLASSES_ROOT/*/shell (或者HKEY_LOCAL_MACHINE/SOFTWARE/Classes/*/shell ,两个目录是一样的) 添加一个key:YNote,然后在该项中新建项command,然后再编辑字符串,

将Cygwin命令行窗口集成到Windows右键菜单

大家知道在Windows下Shift+右键菜单可以呼出"在此处打开命令行窗口"菜单项,在当前路径下执行一些命令,非常的方便.下图是做出的效果: 那么,如何以这种方式打开Cygwin的命令行窗口呢? 方法是"外呼里应","外呼"就是通过注册表添加右键菜单项,用户点击该菜单项时,调用相应程序并传入参数,其中一个重要的参数就是当前路径."里应"就是在cygwin的启动脚本里检测路径参数,若有,则将工作路径切换到该路径参数. 下面先介