增加鼠标右健菜单的功能问题

liuxiangren 2003-11-24 05:46:29
我想在右键单击一个文件的弹出菜单中加一项自己的功能,比如说“文件加密”,
就在注册表中打开HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*,用鼠标右键单击*号,选择新建主键,输入名字:shell,再用鼠标右键单击刚做好的shell,再建“文件加密”的主键,在HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\应用程序名字下边增加个叫command的主键, 修改command 为"C:\Program Files\myjiami.EXE"%1
这样,在资源管理器中右键单击一个文件的弹出菜单中就有了用写字板打开这一项,每次右键单击一个文件,选中文件加密,就运行了myjiami.EXE
但是问题也来了
比如,有一些文件:像视频、音频文件不右键单击,而是直接双击的时候,不是用的REALPLAY、等一些媒体播放软件打开的,而是运行的myjiami.EXE程序,我可不想在一个文件在双击的时候运行“文件加密”这一功能,大家明白了我的意思了吗?
winrar做得就比较好,我就想实现象WINRAR类似的功能,右键单击,可以选择功能。而在双击的时候,WINRAR就不会弹出winrar的窗口

那怎么办呢?在注册表里还要怎样改一下啊?
...全文
107 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuxiangren 2003-11-25
  • 打赏
  • 举报
回复
楼上的兄弟,我用的就是这种方法,右键单击没有问题
主要问题是有时候在双击某种文件的时候,不是正常打开或者运行的,而是运行了myjiami.EXE这个程序,就是说我该了注册表以后破坏了这种类型文件的关联
还需要改写什么呢?

winrar是通过shellex下的ContextMenuHandlers主键下的winrar实现的,但是我按照它的修改方法试了一下,不行

有谁能告诉我怎么按照WINRAR的方法修改注册表吗?
fayifu 2003-11-25
  • 打赏
  • 举报
回复
修改文件的鼠标右键弹出菜单(以下简称弹出菜单)

  运行注册表编辑器(regedit.exe),打开“我的电脑\HKEY_CLASSES_ROOT\*\shellex\ ContextMenuHandler”分支。该分支下有两个主键HexWorkshopContextMenu和Winzip(笔者的电脑中装有Winzip和HexWorkshop),删去后即可发现原来文件的弹出菜单上的Hex edit 和Add to Zip两项不见了。当要在弹出菜单中添加一些可执行文件时(以notepad为例),可进行如下操作:
  1.在“我的电脑\HKEY_CLASSES_ROOT\*”下新建一个名为shell的主键。
  2.在“shell”下新建名为aaa(aaa即是显示于弹出菜单中的文字,这里假设用“用笔记本打开”代替)的主键。
  3.在aaa下新建名为command的主键,修改其右默认的键值为“c:\windows\notepad.exe %1”(%1表示该文件不带参数,而只运行笔记本程序)即可。
  4.需再添加新的菜单项重复步骤2、3即可。
  这样,在弹出菜单上就出现了“用笔记本打开”这一选项,在打开未与笔记本建立关联的文件时避免了从许多打开方式中去重复选择笔记本的麻烦,而且可以用多种方式打开同一文件而不改变该文件原来的关联(如同时用photoshop和ACDSee打开一图片),增加了文件打开方式的灵活程度。

修改驱动器和文件夹的弹出菜单

  1.驱动器弹出菜单的修改
  (1)修改方法同上面文件的弹出菜单的修改基本一样,运行注册表编辑器,打开“我的电脑\HKEY_CLASSES_ROOT\DRIVE”,其下有三个主键DefaultIcon、shell和shellex。
  (2)打开shell可以看见find和Browse with ACDSee(笔者的机器上装有ACDSee),这也是显示在弹出菜单上的文字,如将Browse with ACDSee改为别的名字,如“用ACDSee浏览”时,则英文变成汉语“用ACDSee浏览”。添加菜单项同样需要在shell下添加新主键,删除菜单项则只要删除对应的主键,如删HexWorkshop,则删去shellex下的ContextMenuHandlers主键下的HexWorkshopContextMenu主键即可。
  2.文件夹弹出菜单的修改
  文件夹弹出菜单的修改比较复杂,涉及两个主键Directory和Folder(同样位于“我的电脑\HKEY_ CLASSES_ROOT\”下)的修改。其中修改Folder主键后对驱动器弹出菜单也有影响(修改Drive主键不会影响其他),如在Folder\Shell主键下添加新主键(设名为aaaa),则同时会在驱动器和文件夹弹出菜单中出现aaaa这一项,删除也同样会对两者产生影响,如删除Folder\Shell下的explore和open主键,两者弹出菜单的资源管理器和打开两项就会消失。要删除驱动器弹出菜单的winzip项,则删去Folder\Shellex\Context MenuHandlers下的winzip主键即可。而删除文件夹弹出菜单的winzip项,还要删去Directory\Shellex \ContextMenuHandlers下的winzip主键。只对文件夹弹出菜单进行增删,需对Directory操作就行了(操作主键Directory不会影响驱动器的弹出菜单)。如删去查找菜单项,只需去掉Directory\Shell下的find主键,添加则在Shell下添新主键。
  3.从“文件夹选项”中修改
  这种方法比较简单,类似对文件建立关联,方法如下:
  (1)双击“我的电脑”,打开“查看/文件夹选项”(对于Windows98,还可以单击“开始/设置/文件夹选项”)。
  (2)单击“文件类型”标签,从中选中“驱动器”,然后按“编辑”按钮。
  (3)在随后的编辑文件类型对话框中,按“新建”按钮,在弹出的新操作对话框中输入一个名字(即弹出菜单上的文字),在用于操作的应用程序文本框中输入应用程序名(也可用浏览来寻找),完成后按“确定”即可。
  修改文件夹的步骤相同,只要选中文件夹就可以了。
flyidd 2003-11-25
  • 打赏
  • 举报
回复
啊... 这个偶不是很清楚,不过你可以看一下WinRar在注册表里的设置呀~~
liuxiangren 2003-11-25
  • 打赏
  • 举报
回复
自己顶一下

16,551

社区成员

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

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

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