Как программно добавить команду в контекстное меню определенного расширения? - PullRequest
0 голосов
/ 13 июля 2010

Я создал 2 exe-файла: open.exe и edit.exe.и новое расширение: скажем .newext.

Теперь я хочу

  1. открыть двойным щелчком по файлу .newext с открытым exe.
  2. получить меню с правой кнопкой мыши на файле .newext, где жирным шрифтом написано «Открыть» и под ним написано «Редактировать».И нажав «Изменить», edit.exe открывает файл .newext.
  3. делает это программно, чтобы он мог работать на максимально возможном количестве платформ (по крайней мере, на Xp, Vista и Win7).

Как мне этого добиться?

1 Ответ

0 голосов
/ 13 июля 2010

Вы должны отредактировать дерево классов в реестре (используя функции реестра из AdvApi32.dll).Следующее не проверено и у меня в голове:

  • Базовый ключ HKEY_LOCAL_MACHINE\Software\Classes для общесистемных настроек и HKEY_CURRENT_USER\Software\Classes для пользовательских настроек
  • В этом базовом ключесоздайте подключ с именем .newext и значением по умолчанию X , где X - имя класса (произвольная строка, однозначно определяющая тип файла)
  • Inбазовый ключ, создайте подключ с именем X и значением по умолчанию Y , где Y - видимое пользователем описание типа файла
  • В ключе X создайте подключ с именем shell со значением по умолчанию open
  • В ключе shell создайте подраздел с именем open со значением по умолчанию &Open
  • В ключе open создайте подключ с именем command со значением по умолчанию "C:\path\to\open.exe" "%1"
  • В ключе shell создайте подраздел с именем edit со значением по умолчанию&Edit
  • В ключе edit создайте подраздел с именем command со значением по умолчанию "C:\path\to\edit.exe" "%1"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...