Это ключ реестра, но не все так просто. Вы должны сделать несколько шагов, чтобы добавить одну кнопку.
Возможно, вы заметили, что проводник Win7 настраивает свою панель инструментов в соответствии с отображаемым содержимым. Например, кнопки, показанные для папок панели управления, отличаются от кнопок для документов или папки музыкальной библиотеки. Вы можете найти большой список папок разных типов в разделе реестра
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes
Нажмите на каждый UID, показанный там, чтобы узнать, для какого типа он предназначен. Например, здесь вы видите запись для папок в общем типе библиотеки:
Итак, первое, что вам нужно сделать, это найти тип папки, для которой вы хотите добавить свою собственную кнопку.
Как только вы нашли правильный UID, вам, возможно, придется вступить во владение этими ключами. В противном случае вы не сможете изменить их:
Щелкните правой кнопкой мыши по этому ключу и выберите Permisssions ...
- Нажмите кнопку «Дополнительно».
- Откройте вкладку Владелец.
- В разделе «Изменить владельца» выберите «Администраторы».
Нажмите Применить и убедитесь, что для «Текущий владелец» задано значение «Администраторы»
Нажмите кнопку ОК, чтобы сохранить изменения.
- Вернувшись в диалоговое окно «Разрешения», нажмите «Администраторы», а затем нажмите (чтобы проверить это) Полный доступ
- Нажмите кнопку ОК, чтобы сохранить настройки и закрыть диалоговое окно.
Следующим шагом является создание ключей и значений, необходимых для вашей собственной кнопки:
- Добавить новый ключ,
TasksItemsSelected
- Добавить новый ключ,
TasksItemsSelected\0
- Создайте новый GUID (используйте guidgen.exe) для вашей команды.
- добавить ключ
TasksItemsSelected\0\<yourguid>
, затем добавить строки Title
и InfoTip
и присвоить им соответствующие значения. Здесь также можно установить значок, используя строку Icon
со значением, указывающим на файл значка.
- Добавить ключи
TasksItemsSelected\0\<yourguid>\shell\InvokeTask\command
- в качестве значения по умолчанию для клавиши управления, введите команду, которую хотите выполнить.
Теперь ваша запись в реестре должна выглядеть примерно так:
При выполнении команды она получит как минимум два значения параметра.
%1 -- The path of the folder that was being displayed
%2 -- The pathname of the file that was selected.
Если вы выберете более одного файла до нажатия кнопки mycommand, то последующие имена файлов будут в последующих параметрах.
И последнее, но не менее важное: если вы хотите добавить собственную кнопку для ситуаций, когда ничего не выбрано, сделайте все, как указано выше, но используйте ключ реестра TasksNoItemsSelected
вместо TasksItemsSelected