Windows文件-按需上下文菜单项

1tu0hz3e  于 2023-11-21  发布在  Windows
关注(0)|答案(1)|浏览(183)

文件点播

我们必须准备类似于Windows上的OneDrive的应用程序-存储在云中的文件的同步列表和所选文件的同步。
在调查过程中,我们发现了一个非常好的库,可以从C# -ShellBoost管理Windows中的按需文件。

将云上文件列表为本地文件

显示本地文件夹x1c 0d1x中的按需文件列表
将文件夹显示为空间扩展名

使用ShellBoost,我们可以以一种非常酷的方式同步文件。我们可以显示同步状态,我们可以像普通文件一样执行所有操作,此外,我们可以同步项目或将其从同步中删除。
不幸的是,我们遇到了一些限制

文件上下文菜单项问题

我们无法向未同步的文件添加自定义操作。我使用SharpShell来管理文件上的附加上下文菜单项-它可以工作



但在不同步的文件上,它不起作用。


OneDrive支持自定义上下文菜单项

OneDrive能够添加自定义菜单项

PowerToys可以添加自定义上下文菜单项

不知何故,PowerToys能够将自定义菜单项添加到我们未同步的文件中

示例

下面是一个repo,示例为https://github.com/m4tchl0ck/ShellBoost-My-Samples

stszievb

stszievb1#

正如在注解中提到的,在同步根上实现上下文菜单的正确方法是使用一个实现。
然而,至少有一个选项可以让你的上下文菜单(使用IContextMenu)在云文件上可见,就像here和DEFAULT_FOLDER_MENU_RESTRICTIONS枚举文档中提到的那样。
在注册表中注册上下文菜单处理程序时,在HKCU\CLSID\{YOUR-HANDLER-CLSID}处向处理程序注册添加ContextMenuOptIn值。
举例来说:

[HKEY_CLASSES_ROOT\CLSID\{FF360A3F-3789-4A0C-B5EC-9C843C8A7490}]
@="CoreCLR COMHost Server"
"ContextMenuOptIn"=""

字符串
上下文菜单现在也将显示在脱水的占位符文件上。

相关问题