Как добавить свой пункт в контекстное меню Windows Explorer

Печать
Статьи

Чтобы добавить пункт в контекстное меню Windows Explorer нужно создать несколько входов в системном реестре. Сначала Вы должны получить имя типа файла, добавить пункт контекстного меню и затем добавить командную строку.

Помимо файлов, Вы можете добавлять пункты в контекстное меню для дисков или папок.

Специальные расширения:

  • drive - диски
  • folder - папки

uses
  Registry;

{ ... }
procedure TForm1.Button1Click(Sender: TObject);
var
  sTypeName: string;
begin
  with TRegistry.Create do
    try
      RootKey := HKEY_CLASSES_ROOT;
      { Установите расширение, которое Вы хотите. Включая символ '.' }
      OpenKey('.Extension', True);
      { Получить имя типа файла }
      sTypeName := ReadString('11');
      CloseKey;
      { Создаем расширение проводника. Вместо 'Open' поместите то, что Вы хотите. }
      OpenKey('.Extension\' + sTypeName + 'Shell\Open', True);
      { Пункт контекстного меню }
      WriteString('', 'Открыть при помощи моего приложения');
      CloseKey;

      OpenKey('.Extension\' + sTypeName + 'Shell\Open\Command', True);
      { Командная строка. Введите все опции командной строки, которые необходимы.
        Не забудьте кавычки для длинных имен файлов с пробелами. Даже если имя файла
        приложения не содержит пробелы, папка, в которой оно находится может их содержать.
        %1 - является именем выбранного файла. }
      WriteString('', '"' + Application.ExeName + '" "%1"');
      CloseKey;

      { Повторите это для каждого файла, который Вы хотите включить в контекстное меню.
        Для этой операции, Вы можете использовать цикл и массив строковых констант
        с расширениями файлов. }
    finally
      Free;
    end;

end;