我希望通过 QueryContextMenu 方法(动态动词)的快捷菜单对于“占位符”也可见。占位符是仅在本地虚拟存在的文件,需要从云同步提供商处下载,然后才能读取文件。
出于这个原因,我通过以下方式注册了我的快捷菜单:
HKLM
{
NoRemove Software
{
NoRemove Classes
{
NoRemove CLSID
{
ForceRemove '%CLSID%' = s '%DESCRIPTION%'
{
InprocServer32 = s '%MODULE%'
{
val ThreadingModel = s 'Apartment'
}
SupportedProtocols = s '*'
{
}
}
}
NoRemove AllSyncRootObjects
{
NoRemove ShellEx
{
NoRemove ContextMenuHandlers
{
ForceRemove '%DESCRIPTION%' = s '%CLSID%'
}
}
}
}
}
}
如果该文件确实存在于本地,将显示我的上下文菜单条目。但如果它被脱水(转换为占位符),我的上下文菜单条目将不会显示。如何注册我的 ShellExtension,以便它始终显示?我需要设置哪种标志?可悲的是,互联网对此一无所知。
我试图从 Microsoft 的 ClourMirror 示例中学习,它提供了自定义上下文菜单条目,但遗憾的是它们不起作用:https ://github.com/microsoft/Windows-classic-samples/issues/156 。同时,我尝试从“始终保留在此设备上”和“释放空间”上下文菜单条目中学习,这些条目使用标志SkipCloudDownload
(value: 0) 和StorageProviderFlagsRequired
(value:2) 进行注册,看起来很有希望。特别是SkipCloudDownload
,但我在不同的位置设置了这个标志,没有改变。
在项目的当前状态下,由于跨平台兼容性,需要动态动词。感谢任何提示。