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

为何OneDrive上下文菜单项在IContextMenu中重复显示?

Windows 11下IContextMenu中OneDrive菜单项重复问题

我的应用中,用户右键点击项目时会通过IContextMenu展示右键菜单,逻辑和Windows资源管理器一致,但目前遇到OneDrive菜单项重复的问题:一组菜单项以GUID作为verb,另一组无verb但id与前者不同,无法通过id/verb/文本过滤重复项。

已尝试的两种IContextMenu获取方式

我试过两种获取IContextMenu的方式,均出现相同的重复问题:

  1. 使用IShellFolder.GetUIObjectOf:
shellFolder.GetUIObjectOf(IntPtr.Zero, pidls.Length, pidls, GetType(IContextMenu).GUID, 0, ptrContextMenu)
  1. 使用SHCreateDefaultContextMenu:
Dim dcm As New DEFCONTEXTMENU With {
    .psf = shellFolder,
    .pidlFolder = folderpidl,
    .cidl = pidls.Count,
    .apidl = pidlsPtr,
    .punkAssociationInfo = IntPtr.Zero,
    .cKeys = 0,
    .aKeys = IntPtr.Zero
}
Functions.SHCreateDefaultContextMenu(dcm, GetType(IContextMenu).GUID, ptrContextMenu)

问题的系统特性

该问题为Windows 11特有:

  • 纯净安装的Windows 10 Enterprise(无额外软件)中未出现此问题;
  • 纯净安装的Windows 11 Enterprise中,会显示两个OneDrive菜单项,且启用状态不同;
  • Windows 11预装OneDrive,Windows 10需手动下载;另外Windows 11新增了IExplorerCommand接口,推测该问题可能与此相关。

想了解是否有其他开发者在自己的软件中遇到过同样的问题?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 20:40:15