【问题标题】:manipulate Windows explorer context menu操作 Windows 资源管理器上下文菜单
【发布时间】:2011-01-22 06:19:15
【问题描述】:

我目前正在框架 3.5 SP1 中使用 WPF 编写应用程序,我需要将我的功能扩展到 Windows 资源管理器上下文菜单,例如当用户右键单击文件或文件夹时 Winzip 或 Winrar 或其他任何人所做的。

我做了很多研究,有人说使用注册表,我试过之后,很不灵活。因为我需要上下文菜单中的子菜单以及图标。

我发现的另一种方法是 shell 编程,它更讨厌,但比注册表方法更有潜力。

Shell编程需要COM编程知识,需要时间去学习。

对于我发现的所有关于修改windows explorer上下文菜单的文章,它们大多发表在2003年、2005年等,都是5年前,我的意思是,经过5年的发展,有什么新技术可以做到这一点在当前的 .net 框架(如 3.5 SP1 或 4.0 使用 c#)中可能吗?

谢谢。

【问题讨论】:

标签: .net com registry contextmenu


【解决方案1】:

要在 Windows 资源管理器上下文菜单中添加额外条目,您需要在 Windows 注册表中的 HKEY_CLASSES_ROOT\Folder\shell 中添加两个子键

这些键是:

  1. Folder\shell\MyProduct :此键的值将在新的 Windows 资源管理器上下文菜单项中显示为文本。您还可以通过向键 1 添加一个值并将其命名为“Icon”,然后将图标的路径设置为值,将图标添加到上下文菜单项。

  2. Folder\shell\MyProduct\command:设置要启动的应用程序的路径。

这里是更多详细信息和示例 C# 代码的链接: http://newapputil.blogspot.in/2016/12/adding-new-item-to-context-menu-of.html

【讨论】:

    【解决方案2】:

    在每个文件夹上右键添加应用程序

    当您右键单击任何文件夹时,如何将任何应用程序添加到上下文菜单中。这样您就不必总是转到“开始”菜单。当您右键单击任何文件夹时,您可以访问该应用程序,就像使用“发送到”一样。

    1. 打开 RegEdit
    2. 转到 HKEY_CLASSES_ROOT\Folder\shell
    3. 向“Shell”键添加一个新键,并将其命名为您喜欢的任何名称。
    4. 给它一个默认值,当你右键单击一个文件夹时,它会出现, 即NewKey(使用没有 引号,在任何字符前面和 它将允许您使用键盘)

    5. 点击密钥 HKEY_CLASSES_ROOT\Folder\shell\NewKey

    6. 添加一个名为 Command 的新键
    7. 设置您要运行的应用程序的(默认)值
    8. 例如:c:\program files\internet explorer\iexplore.exe (包括完整路径和参数 如果您需要它们)

    为你编写代码....

    编辑:

    C# 中的代码(用于文件夹)

     private void button1_Click(object sender, EventArgs e)
        {           
            Microsoft.Win32.RegistryKey contextMenuKey = Registry.ClassesRoot.CreateSubKey(@"Folder\shell\MyName\command"); 
            //MyName is name to display
            contextMenuKey.SetValue(null, @"c:\program files\internet explorer\iexplore.exe");  
            //null or "" to set value in (Default), full path of your application
        }
    

    【讨论】:

    • 谢谢。但我想要的比这复杂一点。我想在左侧包含一个带有图标的菜单和子菜单。
    猜你喜欢
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    • 2020-12-26
    • 2010-12-22
    相关资源
    最近更新 更多