You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FILE_ATTRIBUTE_OFFLINE占位符文件动态动词快捷菜单显示问题咨询

同步根占位符上下文菜单显示修复方案
  • 此方案完全兼容基于QueryContextMenu的动态动词实现,无需调整现有动词生成逻辑,仅需修改注册配置与元数据读取规则即可生效。

1. 核心修改点

注册表注册配置调整

你需要在两处位置补充添加标志配置,仅单处设置不会生效:

  1. 你自定义扩展的CLSID节点下新增ShellEx/ContextMenuHandler子节点,添加两个DWORD值
  2. AllSyncRootObjects/ShellEx/ContextMenuHandlers下你的扩展注册项同步添加相同标志
  3. 可选补充注册到所有文件和目录节点,覆盖未被识别为同步根对象的占位符场景

修正后的完整注册表注册片段如下:

HKLM
{
    NoRemove Software
    {
        NoRemove Classes
        {
            NoRemove CLSID
            {
                ForceRemove '%CLSID%' = s '%DESCRIPTION%'
                {
                    InprocServer32 = s '%MODULE%'
                    {
                        val ThreadingModel = s 'Apartment'
                    }
                    SupportedProtocols = s '*'
                    NoRemove ShellEx
                    {
                        NoRemove ContextMenuHandler
                        {
                            val SkipCloudDownload = d '0'
                            val StorageProviderFlagsRequired = d '2'
                        }
                    }
                }
            }
            NoRemove AllSyncRootObjects
            {
                NoRemove ShellEx
                {
                    NoRemove ContextMenuHandlers
                    {
                        ForceRemove '%DESCRIPTION%' = s '%CLSID%'
                        {
                            val SkipCloudDownload = d '0'
                            val StorageProviderFlagsRequired = d '2'
                        }
                    }
                }
            }
            // 可选补充注册,避免部分场景下同步根标记未被识别
            NoRemove *
            {
                NoRemove ShellEx
                {
                    NoRemove ContextMenuHandlers
                    {
                        ForceRemove '%DESCRIPTION%' = s '%CLSID%'
                    }
                }
            }
            NoRemove Directory
            {
                NoRemove ShellEx
                {
                    NoRemove ContextMenuHandlers
                    {
                        ForceRemove '%DESCRIPTION%' = s '%CLSID%'
                    }
                }
            }
        }
    }    
}

2. QueryContextMenu逻辑兼容

  • 不要在QueryContextMenu执行阶段调用CreateFile等触发文件内容读取的API,仅通过IShellItem/IShellItem2接口获取文件的元数据、同步状态属性即可
  • 如需判断文件是占位符还是本地实体文件,可通过IShellItem2.GetUInt32读取PKEY_StorageProviderState属性判断,不会触发占位符的自动下载逻辑

3. 可选打包兼容

如果你的扩展通过MSIX/Appx打包分发,需要在包清单的桌面Shell扩展声明中同步添加上述两个标志的配置,打包场景下注册表配置优先级低于包清单声明。

内容的提问来源于stack exchange,提问作者Trafo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 18:18:05