我使用 VS2010 和 ATL 编写了一个 Windows Explorer shell 扩展,在 HKLM\Directory\Background\shellex\ContextMenuHandlers 下注册,以便在上下文菜单下添加我的命令。
一切都按预期工作,但我想添加一个上下文菜单条目,当且仅当用户右键单击桌面时才会显示该条目,例如 Windows 7 默认设置为“小工具、个性化等”。
我试过这个,但不起作用(不匹配):
if (GetForegroundWindow () == GetDesktopWindow ()) {
// code here
}
关于如何做到这一点的任何问题?
我也尝试过将 SHGetFolderPath() 与 CSIDL_DESKTOPDIRECTORY 一起使用并执行 _tcsicmp(),这可行,但即使在我不想要的普通 Windows 资源管理器窗口中打开桌面目录也会显示。