【问题标题】:Insert item to desktop right-click menufrom shell extension从外壳扩展插入项目到桌面右键菜单
【发布时间】:2012-12-02 11:01:29
【问题描述】:

我已经使用 VS2010 和 ATL 编写了一个 windows explorer shell 扩展,在 HKLM\Directory\Background\shellex\ContextMenuHandlers 下注册,以便在上下文菜单下添加我的命令。

一切都按预期工作,但我想添加一个上下文菜单条目,当且仅当用户右键单击桌面时才会显示该条目,例如 Windows 7 默认的“小工具、个性化等”。

我试过这个,但不起作用(不匹配):

if (GetForegroundWindow () == GetDesktopWindow ()) {
   // code here
}

关于如何做到这一点有什么困难吗?

我也尝试过将 SHGetFolderPath() 与 CSIDL_DESKTOPDIRECTORY 一起使用并执行 _tcsicmp(),这可行,但即使在普通的 Windows 资源管理器窗口中打开桌面目录也会显示,这是我不想要的。

【问题讨论】:

    标签: c++ winapi shell atl explorer


    【解决方案1】:

    在HKCR\DesktopBackground\shellex\ContextMenuHandlers下注册

    【讨论】:

    • 是的,这正是我所做的(我将编辑我的问题),但是我已经说过扩展有效,我问当且仅当用户在桌面区域内右键单击时如何使其显示,而不是在每个目录的每个背景中,这是迄今为止的行为。
    • @modoran 仔细看看。 Stefan 说的是DesktopBackground,但你说的是Directory\Background。
    • 好的,我会将 Stefan 的回答标记为解决方案。问题已解决。
    猜你喜欢
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多