Shell扩展程序在Windows-Explorer中不起作用,但在其他程序中起作用? [英] Shell extension doesn't work in Windows-Explorer but works in other programs?

查看:233
本文介绍了Shell扩展程序在Windows-Explorer中不起作用,但在其他程序中起作用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用按书"的ATL进行了shell扩展(实现IContextMenuIShellExtInitIExtractIconIPersistFile).

有趣的是,在某些文件管理器中,例如"Total Commander"和"Total Commander",一切都很好. 免费指挥官",但在Windows资源管理器中完全失败:


当我在TC("Total Commander")中右键单击我的注册文件(例如*.000)时,扩展名起作用:我在日志和上下文菜单中看到它:带有图标的条目出现./p>

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

我当然注册了ShellEx\MyX\ContextMenuHandlersShellEx\IconHandler键,以及资源管理器的...\Shell Extensions\Approved\,它们都指向我的CLSID. 我使用Windows 7.

我在这里想念什么?

解决方案

@SevaTitov回答了我的问题,但只是作为评论,因此对于那些偶然发现此问题的人以供将来参考:

@SevaTitov:

如果您的操作系统是64位,那么资源管理器也将是64位,并且所有外壳扩展也必须是64位.看起来当前的Total Commander版本仅为32位

就是这样,注册表重定向器,那么当您使用32位程序时,它会隐藏(重定向")64位注册表项,反之亦然.

我很困惑,因为在我的32位Registry-viewer-app中我可以看到那些键,但是没有意识到我只看到了注册表的一部分(64位部分必须与64位一起看到)查看器,例如64位Windows计算机中的默认regedit.exe)

I made shell extension (implementing IContextMenu, IShellExtInit, IExtractIcon & IPersistFile) using ATL, "by the book".

The funny thing is that all is good in some files-managers such as "Total Commander" & "Free Commander", but completely fail in Windows' Explorer:


When I right click on my registered file (say *.000) in TC ("Total Commander"), the extension works: I see it in my logs and in the context menu: the entry with its icon appear.

But if I use Win-Explorer, nothing happens! no log entry comes up, no evidence in the context menu - nothing! even a complete PC restart doesn't help.

I of course registered the ShellEx\MyX\ContextMenuHandlers and ShellEx\IconHandlerkeys, as well as the Explorer's ...\Shell Extensions\Approved\, and they all point to my CLSID. I use Windows 7.

What do I miss here ?

解决方案

@SevaTitov answered my question but as a comment, so for future references for anyone who stumbles upon this issue:

@SevaTitov:

If your OS is 64 bit, the Explorer will be 64 bit as well, and all your shell extensions will have to be 64 bit as well. Looks like current version of Total Commander is 32 bit only

There's that thing, Registry Redirector, that when you're in 32-bit program, it hides ("redirects") the 64-bit reg-entries, and vice versa.

I was confused because in my 32-bit registry-viewer-app I could see those keys, but was unaware that I only see a part of the registry (the 64-bit part has to be seen with a 64-bit viewer like the default regedit.exe in a 64-bit Windows machine)

这篇关于Shell扩展程序在Windows-Explorer中不起作用,但在其他程序中起作用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆