当前位置:编程学习 > C#/ASP.NET >>

如何自定义系统的右键菜单?__________________100分送上.

如何自定义系统的右键菜单?

就是在资源管理器里右键点击文件或文件夹,弹出的菜单里加入自定义项,并执行指定的操作.

例如rar的右键菜单.

找到的参考代码,但是不会用.

希望能实现点击aaa项,执行c:\aaa.exe ,并将被点击的文件或文件夹名作为参数传入.


RegistryKey shell = Registry.ClassesRoot.OpenSubKey(@"*\shell", true);
RegistryKey custom = shell.CreateSubKey(menuName);
RegistryKey cmd1 = custom.CreateSubKey("command");
cmd.SetValue("", Application.ExecutablePath + " %1");
//Application.ExecutablePath 是本程序自身的路径
//%1 是传入打开的文件路径
cmd1.Close();
custom.Close();
shell.Close();
--------------------编程问答-------------------- 这个好弄啊,我关注怎么给前面加个图标。 --------------------编程问答-------------------- 代码都有了,不会用,那就是你的问题了,就是C#操作注册表 --------------------编程问答--------------------
引用 1 楼 qq81867376 的回复:
这个好弄啊,我关注怎么给前面加个图标。

麻烦告知怎么弄啊,加图标我有个参考的源代码. --------------------编程问答-------------------- 你主要是获取不到路径吧。

代码给你: static string[] getPath = Environment.GetCommandLineArgs(); 
         getPath[1]就是你要的东西, 

写在Program里面。 --------------------编程问答-------------------- 麻烦告知怎么弄啊,加图标我有个参考的源代码.
不会是在二级目录里面加图标吧,那样是在txt里面的列子,我想在一级目录添加。 --------------------编程问答-------------------- 如果还不明白的话,我给你例子,自己测试写的,没有任何问题的。因为我原来写个文件加密,文件夹加密,当然也是网上说的那个所谓的改变路径,没有真正的加密。 --------------------编程问答--------------------
引用 5 楼 qq81867376 的回复:
不会是在二级目录里面加图标吧,那样是在txt里面的列子,我想在一级目录添加。


http://www.cnblogs.com/MaxWoods/archive/2010/06/23/1764036.html
 或者搜索 C# Windows Shell 外壳编程系列
 有关于菜单图标的源代码下载 --------------------编程问答--------------------
引用 4 楼 qq81867376 的回复:
你主要是获取不到路径吧。

代码给你: static string[] getPath = Environment.GetCommandLineArgs(); 
         getPath[1]就是你要的东西, 

写在Program里面。

希望能实现点击aaa项,执行c:\aaa.exe ,并将被点击的文件或文件夹名作为参数传入. --------------------编程问答--------------------
引用 5 楼 qq81867376 的回复:
麻烦告知怎么弄啊,加图标我有个参考的源代码.
不会是在二级目录里面加图标吧,那样是在txt里面的列子,我想在一级目录添加。
我找到的那个没有主目录图标 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 2 楼 bdmh 的回复:
代码都有了,不会用,那就是你的问题了,就是C#操作注册表
望大虾赐教 --------------------编程问答-------------------- cmd1.SetValue("", "C:\\aaa.bat %1");
不可以么? --------------------编程问答-------------------- 我给你代码了啊 : 你怎么还在问啊?

 static string[] getPath = Environment.GetCommandLineArgs();  
--------------------编程问答-------------------- 你说的这个我看了,代码很多,要慢慢的看, 关键每次测试要重启explorer.exe --------------------编程问答--------------------
引用 14 楼 qq81867376 的回复:
你说的这个我看了,代码很多,要慢慢的看, 关键每次测试要重启explorer.exe
非常感谢各位的关注.问题已经找到了.
打开注册表编辑器,搜索我的目录名,居然有乱码,改过后就可以了.
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,