Карта сайтаСсылкиКонтакты

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

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

Чтобы добавить пункт в контекстное меню 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;

 

Комментарии   

 
+1 #1 Тимофей 05.06.2015 08:42
Может я что то не так делаю, но у меня вообще ничего не работает
Цитировать
 
 
+1 #2 Serge 05.06.2015 13:01
Статья исправлена, были ошибки. Спасибо!
Вместо .Extension укажите свое расширение файла.
Цитировать
 
 
0 #3 Руслан 08.09.2016 16:21
:sad: :sad: не работает, выдает ошибку "failed to set data for''"
Цитировать
 

Добавить комментарий


Защитный код
Обновить