如何想RAR那样在资源管理器中将自己的应用程序加入右键菜单中?如果解决了问题,再加100分

lxg_dut 2003-07-01 09:10:28

通过读了以前的各位大侠的帖子后,知道,如果直接用自己的应用程序修改注册表,可以达到再右键中加入菜单,但是不能关联到当前的文件,而另一种办法好像是要在注册表注册一个键值,然后关联一个动态库,请问这个动态库是如何实现的?

最好给一个例子。

...全文
684 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxg_dut 2003-07-06
  • 打赏
  • 举报
回复
问题虽然没有解决,但是大家提供了许多方法和思路,所以还是要给分。
ffit 2003-07-06
  • 打赏
  • 举报
回复
up
Skt32 2003-07-06
  • 打赏
  • 举报
回复
修改注册表 打造个性化右键菜单

--------------------------------------------------------------------------------

http://www.sina.com.cn 2002/01/16 13:01 赛迪网--中国电脑教育报

  文/刘玉莲

  鼠标右键菜单中有很多快捷命令,给用户日常操作带来了极大的方便。但是,不知您注意到没有,当鼠标右键菜单弹出的时候,其中的项目是否合您心意呢?是不是有的命令您并不需要,而您需要的却又不在上面呢?或者是英文选项使您不知其意……哈,如果糊里糊涂地使用右键命令,肯定不能提高工作效率。那就让我们略施小计,让鼠标右键菜单命令真正为己所用吧。


  以下方法,主要通过编辑注册表来实现,所以请一定事先备份注册表。方法是:点击“开始/运行”,填入“regedit”打开注册表编辑器,选择“导出注册表文件”就可以了。

  添加右键命令

  您所希望使用的命令如果不在右键菜单中,就要靠我们自己把它“加”进去。让我们来看几个添加实例,把握了基本方法,就可触类旁通,添加一切命令。


图1 用右键快捷命令重启计算机。

  “重新启动计算机”是经常需要做的工作,可是它的实现要通过点击“开始/关闭系统/重新启动计算机/确定”好几个步骤的操作,比较麻烦,如果可以通过右键快捷命令随时随地重启就更方便了。要添加“重新启动计算机”到右键菜单中,方法是:打开注册表编辑器,定位到“HKEY_LOCAL_MACHINE\Software\CLASSES\Directory\shell”,在其下新建一个名为“Restart”的子键,然后双击右侧窗口中的“默认”,将数值设为“重新启动计算机”。接下来,在“Restart”子键下再建一个子项,命名为“command”,双击右侧窗口中的“默认”,将数值设为“C:\WINDOWS\RUNDLL.EXE USER.EXE,EXITWINDOWSEXEC”。回车退出后,鼠标右键单击任意文件夹或“开始”按钮,在弹出的菜单中,用户就可以选择“重新启动计算机”命令了(如图1)。

  除了“回收站”本身,其他文件的右键菜单都没有“清空回收站”命令,那么我们也可以给它加上。在“HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers”下新建主键“{645FF040-5081-101B-9F08-00AA002F954E}”,确定后退出注册表,当右击任何文件时,其快捷菜单都会有一个“清空回收站”的选项。

  删除右键命令

  右键菜单选项良莠不齐,一些没用的命令应毫不留情地删除。在上网时常会遇到IE首页或标题栏被更改的情况,对此大家已经见怪不怪了。可是最近又有一种新的源代码,在右键菜单把自己的网站名字加上,在你用右键的时候就会出现在弹出的菜单中,虽然不影响使用,但一个不怎么样的网站实在不值得留在右键菜单中,而且长长的右键菜单也有碍雅观。去掉它的办法是:打开注册表编辑器,找到“HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt”,你就会看到令人讨厌的网址,将其删除,右键就不会再出现那些网站的名字了。

  有时我们正常卸载某个应用程序后,在右键菜单中仍会遗留下一些不再需要的项目,同样需要将其删除。这些遗留项目一般都存放在“HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers”;如果是只对文件夹有效的项目,则存放在“HKEY_CLASSES_ROOT\Directory\shell”和“HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers”,有时在“HKEY_CLASSES_ROOT\Folder\shell”和“HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers”也有,找到后将他们删除即可。

  不想让右键菜单显示怎么办呢?比如要禁止右键单击“开始”弹出的菜单。在“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer”下新建键值“NoTrayContextMenu”,赋值为“1”,这样在“开始”按钮上单击右键时就不会出现快捷菜单。

  汉化右键命令

  有时在一些程序中使用右键时,所弹出的右键菜单中一些命令用英文显示,如果英文不好就会“一头雾水”。其实,它们是可以汉化的。比如安装了网络蚂蚁后,当用户浏览网页时如果单击鼠标右键,会发现在菜单中多了“Download All by NetAnts”,感到它和其他的中文选项有点不谐调。汉化它的办法是:打开注册表编辑器,定位到“HKEY_CURRENT_USER\Soft-ware\Microsoft\Internet Explorer\MenuExt\Download &&All by NetAnts”,再用鼠标右键单击“Download &&All by NetAnts”子键,在出现的快捷菜单中选择“重命名”,则“Download &&All by NetAnts”子键即变为可编辑状态,此时可将其修改为“全部由网络蚂蚁下载”,回车后,重新启动浏览器,汉化内容生效。

  雪鸟:方法虽好,还要勤加修炼。编辑注册表的作用,绝不仅仅是修改右键菜单这么有限,Windows系统的很多奥妙,都在其中。多尝试几次,捅破了窗户纸,你会发现,规律就在眼前。

http://tech.sina.com.cn/c/2002-01-16/8472.html
dzqsuper 2003-07-02
  • 打赏
  • 举报
回复
个个都是高手
xudong1105 2003-07-02
  • 打赏
  • 举报
回复
找一个注册表类修改注册表很好实现的

曾经的猎狐 2003-07-02
  • 打赏
  • 举报
回复
右键打开记事本

  安装ACDSee、WinZip等软件后,其程序项目会出现在系统的右键菜单中,以方便用户调用程序。我们也可将记事本放入右键菜单后,只要对文件点击右键,选择“记事本”,便能快速地调用记事本打开该文件。   在右键菜单中加入“记事本”项目的方法如下:运行注册表编辑程序Regedit.exe,打开[HKEY_CLASSES_ROOT\*\shell]子键,在“shell”下新建一个“记事本”主键,在“记事本”下新建一个“COMMAND”主键,选定“COMMAND”,双击右部窗口中的“默认”,在弹出对话框的“键值”文本框中输入“notepad.exe %1”,最后关闭注册表编辑器。

zhucde 2003-07-02
  • 打赏
  • 举报
回复
呵呵,解决了吗?
用windows优化大师也可以很快的实现.
曾经的猎狐 2003-07-02
  • 打赏
  • 举报
回复
给系统资源管理器右键菜单增添新功能

一、在软驱的右键菜单中添加“清空A盘”功能

  当我们需要删除软盘上的全部内容时,这个功能将会大大简化我们的操作。运行“regedit”,进入HKEY_CLASSES_ROOT\Drive\Shell主键,在其下新建一个“EmptyA”子键,将其默认值设为“清空A盘”(该提示将出现在软驱的右键菜单中),在此“EmptyA”子键下再新建“Command”子键,将其默认值设为“deltree/y A:”,按F5键刷新后关闭注册表编辑器
。使用这个命令时需小心,因为它不经过提示就会直接在MS-DOS窗口中删除你软盘中的所有文件。

  二、在右键快捷菜单中加入“打开方式”命令

  当我们按着Shift键的同时右键单击某一文件,将会在快捷菜单中看到“打开方式”命令,可以很灵活地选用不同的程序来打开文件。其实你也可以在右键快捷菜单中直接加入“打开方式”命令。首先在HKEY_CLASSES_ROOT\*下新建一个“Shell”主键,在其下再新建一个“OpenWith”子键,将其默认值设为“打开方式”,然后在“OpenWith”子键下新建“Command”子键,设其默认值为“C:\Windows\rundll32.exe Shell32.dll,OpenAs_RunDLL %1”(注意大小写及空格),按F5键刷新后关闭注册表编辑器即可。

lxg_dut 2003-07-02
  • 打赏
  • 举报
回复
up
难道没有人高过这个东西?
lxg_dut 2003-07-02
  • 打赏
  • 举报
回复
awnucel(三十功名臣与土※八千里路云和月)(峰宸) 你好:

这样做能够把自己的程序跟当前点击的程序文件名称关联起来吗?
我试了一下,好像何以打开我得应用程序。但是没有打开那个文件?
不知为何?
zhucde 2003-07-01
  • 打赏
  • 举报
回复
up
lxg_dut 2003-07-01
  • 打赏
  • 举报
回复
能不能说的更清楚一些,谢了先。
Pollux5 2003-07-01
  • 打赏
  • 举报
回复
shell扩展,www.codeproject.com上有例子,需要你对com有点了解
lxg_dut 2003-07-01
  • 打赏
  • 举报
回复
up

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧