C# 添加系统右键级联菜单!

youzelin 2014-04-25 02:43:20
目的:在 Windows 系统环境下,添加级联菜单,如下这样:

但是我查了两天,翻遍了 Google,只发现可以添加自定义菜单项,没法实现这种级联式的,恳请大神们或者有经验的让你帮忙!非常感谢。
以下是我的参考资料(还有很多都是重复的,就不列举了):
1. (C#)Windows Shell 外壳编程系列 - ContextMenu 注册文件右键菜单
这篇文章看上去很有价值!但当我下载其源代码后,rebuild,然后以管理员方式运行 bin 目录下的 reg.bat,发现根本没有效果。会不会是 Windows 7 的注册右键菜单的方式已经发生了变化?

2. C# 如何在 Windows 文件系统中添加自定义右键菜单
根据这篇文章可以做到右键添加菜单项,但是很可惜没法实现级联菜单。

请各位帮忙,谢谢!我对注册表操作不是很有经验。
...全文
1618 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanggulashan 2016-11-24
  • 打赏
  • 举报
回复
请问楼主,这个问题,后来怎么解决的。本人近期也在学习相关的,也遇到了这个问题。请帮帮忙。
tdtclls 2016-08-03
  • 打赏
  • 举报
回复
请问这个问题,您后来是怎么解决的?
youzelin 2014-06-12
  • 打赏
  • 举报
回复
引用 28 楼 ee_2499021096 的回复:
使用ContextMenuStrip控件 在需要使用右键快捷菜单的控件的的ContextMenuStrip属性选择为添加ContextMenuStrip控件就可以达到目的
老大,你确定你知道我们在说什么嘛?
ee_2499021096 2014-06-11
  • 打赏
  • 举报
回复
使用ContextMenuStrip控件 在需要使用右键快捷菜单的控件的的ContextMenuStrip属性选择为添加ContextMenuStrip控件就可以达到目的
youzelin 2014-06-10
  • 打赏
  • 举报
回复
引用 25 楼 u011181019 的回复:
写注册表
请问你想说什么?
c电磁 2014-06-01
  • 打赏
  • 举报
回复
写注册表
youzelin 2014-05-31
  • 打赏
  • 举报
回复
@智者知已应修善业 好吧,我能理解你。但是不管适用不适用,和我的问题都没有关系。 PS:自从装了 Win7+,我就从来没有装过杀毒软件。对金山、瑞星一直没有好感,推荐 KIS 2014。题外话了。视频播放,首推迅雷看看,其它的靠边站。
  • 打赏
  • 举报
回复
引用 17 楼 youzelin 的回复:
[quote=引用 13 楼 xianfajushi 的回复:] 那是亲身体验非常讨厌的一种感觉,如金山毒霸和瑞星老是这样在开始栏还有桌面放置快捷什么安全网址删除了再有,这样给人很讨厌的感觉,难道他们真的就那么重要?人家删除了嘛,还再弄出来,如果人家需要自然会自己处理到好用的状况,在这里并不是批评你的做法,我只是说出一种感觉而已,提醒如果要设计这样功能的话最好再设计一个选项让用户自己去选择是否使用该功能。 如果你理解为对你不好那是你自己的事了。
我发现你很搞笑啊,是,没错,有些程序做成右键菜单是画蛇添足的,那又怎样呢?但是也有很多程序做成右键菜单很方便啊!我的程序现在就是要这个,就好像,现在甲方就是要乙方做这个,可以吗?怎么还在纠结这个菜单是不是适合喽什么的。 我现在是来 CSDN 求解决方案的,不是来和你讨论是不是要这个右键菜单的。 TO dg乱舞春秋 Win7 就是不行,不知道,如果 Win7 不行,Win8 肯定更加不行,因为 Win8 的安全性有过之无不及。 还希望大家有知道的给点解决方案!THANKS![/quote] 你笑是你的事,还不知道是笑谁呢,起先觉得没说明白可能让人误会,所以解释了不针对你,你可以学这技术,只是看到你的图,油然而生那种讨厌的感觉,所以,就借以晒晒某些软件的那种行为。
youzelin 2014-05-25
  • 打赏
  • 举报
回复
引用 21 楼 liucqa 的回复:
你抓一下其他软件的注册表操作呗
我有看过,在注册表搜索一些比如压缩软件的关键字然后找相关的 CLSID 之类的,看不懂的。
泡泡龙 2014-05-24
  • 打赏
  • 举报
回复
你抓一下其他软件的注册表操作呗
  • 打赏
  • 举报
回复
那么界面如何设计呢?
youzelin 2014-05-24
  • 打赏
  • 举报
回复
引用 18 楼 iyomumx 的回复:
你在5L发的链接就可以,只是位置改为 HKEY_CLASSES_ROOT\Directory\shell\<菜单ID比如文章里的示例Menu1>,其它不变。 如果想要对应所有文件则可以把Directory改为* 如果想要根据具体文件/文件夹内容调整菜单,那么这个方法不能做到,需要注册Shell Extension COM对象
Directory 是可以,但是如果对着文件右键,就没有这个菜单了。但是注册表项里面 File 键值好像又不是。关键就是需要对文件进行右键功能。
iyomumx 2014-05-23
  • 打赏
  • 举报
回复
你在5L发的链接就可以,只是位置改为 HKEY_CLASSES_ROOT\Directory\shell\<菜单ID比如文章里的示例Menu1>,其它不变。 如果想要对应所有文件则可以把Directory改为* 如果想要根据具体文件/文件夹内容调整菜单,那么这个方法不能做到,需要注册Shell Extension COM对象
youzelin 2014-05-23
  • 打赏
  • 举报
回复
引用 13 楼 xianfajushi 的回复:
那是亲身体验非常讨厌的一种感觉,如金山毒霸和瑞星老是这样在开始栏还有桌面放置快捷什么安全网址删除了再有,这样给人很讨厌的感觉,难道他们真的就那么重要?人家删除了嘛,还再弄出来,如果人家需要自然会自己处理到好用的状况,在这里并不是批评你的做法,我只是说出一种感觉而已,提醒如果要设计这样功能的话最好再设计一个选项让用户自己去选择是否使用该功能。 如果你理解为对你不好那是你自己的事了。
我发现你很搞笑啊,是,没错,有些程序做成右键菜单是画蛇添足的,那又怎样呢?但是也有很多程序做成右键菜单很方便啊!我的程序现在就是要这个,就好像,现在甲方就是要乙方做这个,可以吗?怎么还在纠结这个菜单是不是适合喽什么的。 我现在是来 CSDN 求解决方案的,不是来和你讨论是不是要这个右键菜单的。 TO dg乱舞春秋 Win7 就是不行,不知道,如果 Win7 不行,Win8 肯定更加不行,因为 Win8 的安全性有过之无不及。 还希望大家有知道的给点解决方案!THANKS!
SeeYou孙悟空 2014-05-23
  • 打赏
  • 举报
回复
如果楼主找到好的解决方案,希望能引用@下我,学习学习,谢谢。
SeeYou孙悟空 2014-05-23
  • 打赏
  • 举报
回复
同测,Win7没有成功,可能是微软Win7版本更替的什么的原因吧。。。。。。。
於黾 2014-05-23
  • 打赏
  • 举报
回复
引用 13 楼 xianfajushi 的回复:
那是亲身体验非常讨厌的一种感觉,如金山毒霸和瑞星老是这样在开始栏还有桌面放置快捷什么安全网址删除了再有,这样给人很讨厌的感觉,难道他们真的就那么重要?人家删除了嘛,还再弄出来,如果人家需要自然会自己处理到好用的状况,在这里并不是批评你的做法,我只是说出一种感觉而已,提醒如果要设计这样功能的话最好再设计一个选项让用户自己去选择是否使用该功能。 如果你理解为对你不好那是你自己的事了。
应该是在安装过程中加右键菜单,而不是每次程序运行都加上.这样就可以了
  • 打赏
  • 举报
回复
那是亲身体验非常讨厌的一种感觉,如金山毒霸和瑞星老是这样在开始栏还有桌面放置快捷什么安全网址删除了再有,这样给人很讨厌的感觉,难道他们真的就那么重要?人家删除了嘛,还再弄出来,如果人家需要自然会自己处理到好用的状况,在这里并不是批评你的做法,我只是说出一种感觉而已,提醒如果要设计这样功能的话最好再设计一个选项让用户自己去选择是否使用该功能。 如果你理解为对你不好那是你自己的事了。
youzelin 2014-05-23
  • 打赏
  • 举报
回复
引用 11 楼 xianfajushi 的回复:
用户有时并不需要这样东西甚至有些讨厌这些东西弄了一大堆并不是那么重要,比如:暴风影音软件会在单机开始菜单的列表中添加快捷,删除后又添加上去,太讨厌了,你真的对用户来说有那么重要?总是占几个列表位不拉屎,人家用户要显示更要紧的列表,它老是占着茅坑啊?
真是搞笑啊,我现在就是需要这个功能,弄不出来,你说这么一大通干嘛?有些软件不需要,有些软件当然非常需要! 比如:压缩软件,当你选中几个文件需要压缩的时候,难道你希望单独打开,然后再跳到 Explorer 选中文件拖进去?谁压缩文件是这样做的?哪个不是右键操作?!真是搞笑了。自己不知道就不知道,好像你不想知道一样。 真是莫名其妙。
  • 打赏
  • 举报
回复
用户有时并不需要这样东西甚至有些讨厌这些东西弄了一大堆并不是那么重要,比如:暴风影音软件会在单机开始菜单的列表中添加快捷,删除后又添加上去,太讨厌了,你真的对用户来说有那么重要?总是占几个列表位不拉屎,人家用户要显示更要紧的列表,它老是占着茅坑啊?
加载更多回复(10)

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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