如何为回收站添加上下文菜单

Posted

技术标签:

【中文标题】如何为回收站添加上下文菜单【英文标题】:How can I add a context menu for recycle bin 【发布时间】:2012-08-21 14:37:32 【问题描述】:

如何为 Windows 回收站添加上下文菜单?我如何最终访问其中的文件?我知道回收站是一个虚拟文件夹,它有一个树状结构,我必须一路访问里面的文件吗?

已编辑:

HKLM

NoRemove Software

    NoRemove Classes 
    
        NoRemove CLSID
        
            NoRemove 645FF040-5081-101B-9F08-00AA002F954E
            
                NoRemove shellex
                
                    NoRemove ContextMenuHandlers
                    
                        ForceRemove FC944A65-4422-4A2C-B867-1BA01318A944
                    
                
            
        
           
   
   

【问题讨论】:

如果您需要所有文件,那么是的,您需要枚举它们。作为一个虚拟文件夹不会改变任何东西。如果您只需要一个文件,那么是哪一个? 我需要所有出现在回收站中的文件,但是如何为其注册上下文菜单? 不要像这样直接将你的 Shell 扩展注册到HKCR。请改用HKCU\Software\Classes 和/或HKLM\Software\Classes。由于HKCR 是多个注册表项的合并视图,因此只能用于读取数据,不能用于写入数据。 现在怎么样?我又修改了一遍。 无论如何,在 msdn 页面上,他们为 HKEY_CLASSES_ROOT\CLSID 使用 str8 并且它适用于其他文件类型扩展名。 【参考方案1】:

查看以下注册表项:

HKEY_CLASSES_ROOT\CLSID\645FF040-5081-101B-9F08-00AA002F954E\Shell
HKEY_CLASSES_ROOT\CLSID\645FF040-5081-101B-9F08-00AA002F954E\ShellEx

对于您正在尝试的内容,您可能需要编写上下文菜单外壳扩展并将其注册到 ShellEx 键中。

Creating Shell Extension Handlers

Creating Shortcut Menu Handlers

【讨论】:

伙计,我将发布我的注册 dll 的代码,我查看注册表,它在那里,但是上下文菜单没有显示在回收站上,上下文菜单出现在我已将其注册到的其他文件(如 .txt 文件)。

以上是关于如何为回收站添加上下文菜单的主要内容,如果未能解决你的问题,请参考以下文章

如何为 FrameLayout 中的多个视图制作浮动上下文菜单?

如何为 ListView 的 ContextActions 的 MenuItem 添加可见性绑定

如何为 ListBoxItems 创建动态上下文菜单?

将上下文菜单添加到特定的 Qtablewdiget 表列,Python

如何为应用程序上下文初始化事件添加钩子?

如何为特定页面创建父组件(以便能够在父级中添加反应上下文)?