C#为所有文件类型向windows资源管理器添加上下文菜单项

C#为所有文件类型向windows资源管理器添加上下文菜单项,c#,registry,windows-explorer,C#,Registry,Windows Explorer,我目前正在编写一个应用程序,需要修改windows资源管理器的上下文菜单,以便在应用程序中调用一个方法,以便在windows资源管理器中看到的所有文件/文件夹上使用 因为已经有很多关于stackoverflow的文章(还有教程)介绍了如何为特定的文件类型添加上下文菜单,我已经知道,这通常是通过将应用程序分配到这些文件类型的注册表项的正确部分来完成的 由于我不想将自己局限于特定的文件类型,我的问题是:有什么办法吗 将此新上下文菜单项分配给所有文件类型(除了查看每个注册表项 从开始。然后在那里将应用

我目前正在编写一个应用程序,需要修改windows资源管理器的上下文菜单,以便在应用程序中调用一个方法,以便在windows资源管理器中看到的所有文件/文件夹上使用

因为已经有很多关于stackoverflow的文章(还有教程)介绍了如何为特定的文件类型添加上下文菜单,我已经知道,这通常是通过将应用程序分配到这些文件类型的注册表项的正确部分来完成的

由于我不想将自己局限于特定的文件类型,我的问题是:有什么办法吗 将此新上下文菜单项分配给所有文件类型(除了查看每个注册表项
从开始。然后在那里将应用程序分配给他们)

是的,
*
类:

  • 创建密钥:

    HKEY\U CLASSES\U ROOT\*\shell\openwithmything

  • 创建子密钥:

    HKEY\u CLASSES\u ROOT\*\shell\openwithmything\command

  • 将默认值设置为命令行:

    C:\foo\myThing.exe“%1”

    (您也可以在此处添加固定值:
    C:\foo\myThing.exe“%1”/ranfromshell

  • 要设置可选图标,请在中创建字符串值
    图标

    HKEY\U CLASSES\U ROOT\*\shell\openwithmything

    您可以在此处放置图标、dll或exe的路径-Windows将提取相应的图标并显示它


  • 例子

    用于:


    注册医生
    你知道用C#编写shell扩展是非常不可取的吗?还有更多信息,你有没有用图书馆来做这件事?使用它很容易实现您的目标EPP,我知道编写shell扩展是不值得的。问题是,我正在进行的项目的部分限制是,它必须用C#编写,而且只能在C#中编写。因此,如果某件事不可能,我可以在那里与客户争论,但如果“只是”不推荐,我的争论立场很弱。到目前为止我还不知道sharpshell,通过tnxA基本的基于注册表的关联来阅读它并不是一个shell扩展,而且非常好。嗯,我在那里做错了什么?。我正在使用HKEY\U CLASSES\U ROOT*\shell\My context Menu Name\command,并将默认值设置为命令行值,但它没有显示任何内容(使用command和command进行了尝试)。对于我来说,这是可行的,添加了一个屏幕快照。我有“问题”。我只查看文件夹,而不查看文件本身(认为文件夹在那里被视为文件)。因此,函数用于文件。问题尽管如此,是否也有这样的方法将其添加到文件夹中?以相同的方式添加到
    HKEY\U CLASSES\U ROOT\Directory\shell…
    感谢您的解释,是否也可以将图标添加到“我的上下文菜单名”条目中?
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\*\shell\Open with MyThing]
    "Icon"="C:\\foo\\myThing.exe"
    
    [HKEY_CLASSES_ROOT\*\shell\Open with MyThing\command]
    @="C:\\foo\\myThing.exe \"%1\""