【问题标题】:Shell extension windows : best communication between ContextMenu and IconOverlay?Shell 扩展窗口:ContextMenu 和 IconOverlay 之间的最佳通信?
【发布时间】:2014-06-25 14:41:12
【问题描述】:

Windows 专家您好,

我正在寻找一种使用上下文菜单激活文件覆盖的简单方法。 Tortoise SVN 给出了一个可以做什么的例子。但与我的简单需求相比,它非常复杂。

目前我正在考虑使用 C++ 以这种方式处理它:

http://www.codeproject.com/Articles/545781/NET-Shell-Extensions-Shell-Icon-Overlay-Handlers

http://www.codeproject.com/Articles/10104/Add-a-context-menu-to-the-Windows-Explorer

问题是在两者之间创建链接。以下链接建议制作地图,但我对如何制作地图感到很困惑:

What the best Language to use when creating Windows Shell Context Menu?

【问题讨论】:

  • 上下文菜单和叠加层不相互通信。相反,它们与维护所有文件扩展状态的通用后端通信。
  • 感谢您的澄清,这正是我正在尝试创建的后端

标签: c++ windows winapi shell-extensions


【解决方案1】:

您可以使用注册表,例如将Enabled 值存储在HKEY_CURRENT_USER\YourCompany\YourApp 键中。当用户执行您的菜单项以打开/关闭功能时,将适当的值写入Enabled,然后调用SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil)。这将导致外壳重新读取图标,包括覆盖扩展中的图标。在 IconOverlay 处理程序的 IsMemberOf 方法中,检查您的 Enabled 值,如果功能已关闭,则返回 S_FALSE

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多