Расширение оболочки не работает в Windows-Explorer, но работает в других программах?
Я сделал расширение оболочки (реализации IContextMenu
, IShellExtInit
, IExtractIcon
& IPersistFile
) используя ATL, "по книге".
Самое смешное, что в некоторых файловых менеджерах, таких как "Total Commander" и "Free Commander", все хорошо, но в Windows Explorer все не работает:
Когда я нажимаю правой кнопкой мыши на мой зарегистрированный файл (скажем, *.000
) в TC ("Total Commander") расширение работает: я вижу его в своих логах и в контекстном меню: появляется запись с ее иконкой.
Но если я использую Win-Explorer, ничего не происходит! нет записи в журнале, нет никаких доказательств в контекстном меню - ничего! даже полная перезагрузка компьютера не помогает.
Я конечно зарегистрировал ShellEx\MyX\ContextMenuHandlers
а также ShellEx\IconHandler
ключи, а также проводники ...\Shell Extensions\Approved\
и все они указывают на мой CLSID
, Я использую Windows 7.
Что мне здесь не хватает?
1 ответ
@SevaTitov ответил на мой вопрос, но в качестве комментария, поэтому для будущих ссылок для тех, кто наткнулся на эту проблему:
@SevaTitov:
Если ваша ОС 64-битная, то Explorer также будет 64-битной, и все ваши расширения оболочки также должны быть 64-битными. Похоже, текущая версия Total Commander только 32-битная
Редакция реестра перенаправляет информацию о том, что когда вы работаете с 32-битной программой, она скрывает ("перенаправляет") 64-битные записи reg, и наоборот.
Я был сбит с толку, потому что в моем 32-битном приложении для просмотра реестра я мог видеть эти ключи, но не знал, что вижу только часть реестра (64-битная часть должна просматриваться в 64-битном средстве просмотра, таком как по умолчанию regedit.exe на 64-разрядной машине Windows)