c# winform如何做出桌面右键菜单?

像winRAR之类的软件,右键文件出现菜单,右键文件夹也出现右键菜单,然后用C#做的程序执行相应的操作。其实我要做的功能也很少,就是右键弹出菜单,选择执行菜单项,然后获取... 像winRAR之类的软件,右键文件出现菜单,右键文件夹也出现右键菜单,然后用C#做的程序执行相应的操作。

其实我要做的功能也很少,就是右键弹出菜单,选择执行菜单项,然后获取该文件或该文件夹的路径就够了。

小弟我还很菜,在此请教各位大大帮忙找个思路出来。先谢谢了。
本问题已解决,看哪位说得接近详细就送分了。像jackyc23就说到点子上了,得分的机率好大哦。再过13天再来结贴。
展开
 我来答
417672894
2010-06-29 · 超过26用户采纳过TA的回答
知道答主
回答量:116
采纳率:0%
帮助的人:107万
展开全部

在工具箱的“菜单和工具栏”中找到ContextMenuStrip控件拖入窗体中,在其中添加你所要实现的效果,如:打开,保存…….

我现在就用总窗体Form来说:前面的步骤完成了,再到Form的属性中找到ContextMenuStrip属性,一般默认的都是“无”,点击这一属性,有一下拉框,其中就有你创建的ContextMenuStrip,选择ContextMenuStrip就OK了;给你图片:

jackyc23
推荐于2016-11-10 · TA获得超过523个赞
知道小有建树答主
回答量:376
采纳率:0%
帮助的人:393万
展开全部
这个是通过注册表实现的,跟C#程序本身没啥关系
比如下面两段就能实现在文件的右键菜单中加入“用记事本打开”的效果
[HKEY_CLASSES_ROOT\*\shell\OpenInNotepad]
@="用记事本打开"

[HKEY_CLASSES_ROOT\*\shell\OpenInNotepad\command]
@="\"notepad.exe\" %1"

在制作安装程序时,可以写脚本,实现对注册表的操作
Setup Factory,installshield 都是不错的打包软件
手动编辑好注册表也能看到效果

可以写代码将自己的程序注册到系统右键菜单,主要代码如下:
private void button1_Click(object sender, EventArgs e)
{
string menuName = string.IsNullOrEmpty(this.textBox1.Text.Trim()) ? "真有意思网" : this.textBox1.Text.Trim();

//注册到所有文件
if (chkFile.Checked)
{
RegistryKey shell = Registry.ClassesRoot.OpenSubKey(@"*shell", true);
RegistryKey custom = shell.CreateSubKey(menuName);
RegistryKey cmd = custom.CreateSubKey("command");
cmd.SetValue("", Application.ExecutablePath + " %1");
//Application.ExecutablePath 是本程序自身的路径
//%1 是传入打开的文件路径
cmd.Close();
custom.Close();
shell.Close();
}

//注册到所有目录
if (chkFile.Checked)
{
RegistryKey shell = Registry.ClassesRoot.OpenSubKey(@"directoryshell", true);
RegistryKey custom = shell.CreateSubKey(menuName);
RegistryKey cmd = custom.CreateSubKey("command");
cmd.SetValue("", Application.ExecutablePath + " %1"); //%1 是传入打开的文件路径
cmd.Close();
custom.Close();
shell.Close();
}

MessageBox.Show("注册成功!rn请通过文件或目录的右键菜单来测试结果!");
}

别忘了引用命名空间Microsoft.Win32
using Microsoft.Win32;

详细代码请参考
http://hi.baidu.com/deltacat2006上这篇文章
C#、VB.NET将自己的程序注册到系统的右键菜单(所有文件和目录)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
公园二校
2010-06-28 · TA获得超过1.4万个赞
知道大有可为答主
回答量:9120
采纳率:0%
帮助的人:5920万
展开全部
采纳答案留QQ
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式