Расширение оболочки не работает в Windows-Explorer, но работает в других программах? - PullRequest
1 голос
/ 06 октября 2011

Я сделал расширение оболочки (реализовав IContextMenu, IShellExtInit, IExtractIcon & IPersistFile), используя ATL, "по книге".

Самое смешное, что в некоторых все хорошофайловые менеджеры, такие как «Total Commander» и «Free Commander», но полностью не работают в проводнике Windows:


Когда я щелкаю правой кнопкой мыши по зарегистрированному файлу (скажем, *.000) в TC ("Total Commander "), расширение работает: я вижу его в своих логах и в контекстном меню: появляется запись с ее значком.

Но если я использую Win-Explorer, ничего не происходит! нет записи в журнале , никаких доказательств в контекстном меню - ничего!даже полный перезапуск ПК не помогает.

Я, конечно, зарегистрировал клавиши ShellEx\MyX\ContextMenuHandlers и ShellEx\IconHandler, а также ...\Shell Extensions\Approved\ в Проводнике, и все они указывают на мой CLSID.Я использую Windows 7.

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 10 октября 2011

@ SevaTitov ответил на мой вопрос, но в качестве комментария, поэтому для будущих ссылок для всех, кто сталкивается с этой проблемой:

@ SevaTitov:

Если ваша ОС 64-разрядная,Проводник также будет 64-разрядным, и все ваши расширения оболочки также должны быть 64-разрядными.Похоже, текущая версия Total Commander только 32-битная

Есть такая вещь, Registry Redirector , что когда вы находитесь в 32-битной программе, она скрывается («перенаправляет»)) 64-битные reg-записи, и наоборот.

Я был сбит с толку, потому что в моем 32-битном приложении просмотра реестра я мог видеть эти ключи, но не знал, что вижу только частьRegistry (64-битная часть должна просматриваться с помощью 64-битной программы просмотра, например, regedit.exe по умолчанию на 64-битной машине Windows)

...