1

我使用 ATL 制作了 shell 扩展(实现IContextMenu, IShellExtInit, IExtractIcon& IPersistFile),“按书本”。

有趣的是,在“Total Commander”和“Free Commander”等文件管理器中一切正常,但在 Windows 的资源管理器中完全失败:


当我在 TC(“Total Commander”)中右键单击我的注册文件(比如*.000)时,扩展程序有效:我在日志和上下文菜单中看到它:出现带有图标的条目。

但是如果我使用 Win-Explorer,什么都不会发生!没有日志条目出现,上下文菜单中没有证据 - 什么都没有!即使完全重启 PC 也无济于事。

我当然注册了ShellEx\MyX\ContextMenuHandlersShellEx\IconHandler键,还有 Explorer 的...\Shell Extensions\Approved\,它们都指向我的CLSID. 我使用 Windows 7。

我在这里想念什么?

4

1 回答 1

0

@SevaTitov 回答了我的问题,但作为评论,因此对于偶然发现此问题的任何人的未来参考:

@SevaTitov:

如果您的操作系统是 64 位,则资源管理器也将是 64 位,并且您的所有 shell 扩展也必须是 64 位。看起来当前版本的 Total Commander 只有 32 位

有一个东西,注册表重定向器,当你在 32 位程序中时,它会隐藏(“重定向”)64 位注册表项,反之亦然。

我很困惑,因为在我的 32 位注册表查看器应用程序中我可以看到这些键,但没有意识到我只看到了注册表的一部分(64 位部分必须使用 64 位查看器才能看到,例如64 位 Windows 机器中的默认 regedit.exe)

于 2011-10-10T11:59:34.660 回答