Расширение контекстного меню оболочки C ++ - PullRequest
1 голос
/ 05 сентября 2011

Я пытаюсь создать расширение контекстного меню для файлов / папок Windows. Я уже очень старался, но у меня ничего не получалось. У меня уже есть такое расширение для 32-битных систем, но оно устарело. Я хочу воссоздать его, используя C ++ для 64-битных систем.

Этот был ближе всего к тому, что я хочу сделать: Klick Но это для 32-битных систем. Прочитав комментарии, я смог изменить и собрать его для x64.

Регистрация его с помощью system32 / regsvr32.exe в моей 64-битной системе говорит о том, что он был успешно зарегистрирован. Все записи реестра созданы правильно. Но пункт меню не появляется. Понятия не имею, почему ...

Может ли кто-нибудь мне помочь? Я могу загрузить проект для вас, если вы хотите.

UPDATE

Я использую оригинальный проект по ссылке выше и изменил следующие вещи:

1) установить цель на «x64»

2) так как я не могу его скомпилировать, я изменил следующие вещи:

2.1) Перед включением в stdafx.h я добавил:

#define _ATL_NO_UUIDOF

2.2) Я изменил UINT на UINT_PTR здесь:

HRESULT CFSBankShellExtension::GetCommandString (
UINT_PTR idCmd, 
UINT uFlags, 
UINT* pwReserved,
LPSTR pszName, 
UINT cchMax )

3) Я изменил txtfile на * в файле .rgs, чтобы он отображался на всех типах файлов.

4) Мне удалось скомпилировать и зарегистрировать его

Если вы не можете мне помочь, было бы здорово, если бы вы могли загрузить шаблон, который будет работать в системе x64.

1 Ответ

1 голос
/ 05 сентября 2011

Эта статья может помочь вам, так как она сработала для моего проекта ..

Простое контекстное меню оболочки

Контекстные меню для всех файлов, папок,и диски

Вы также можете подключить контекстные меню ко всем файлам, папкам и дискам, добавив записи в разделы реестра типа *, Каталога и Диска.Например, XP PowerToys добавляет меню «Открыть окно командной строки» во все папки со следующим сценарием реестра:

REGEDIT4

[HKEY_CLASSES_ROOT \ Directory \ shell \ cmd] @ = "Открыть окно командной строки здесь"

[HKEY_CLASSES_ROOT \ Directory \ shell \ cmd \ command] @ =" cmd.exe / k \ "cd% L \" "

...