Зачастую, возможностей стандартного контекстного меню файлов не хватает для различных задач пользователей. Уже была статья о том, как
расширить это меню, однако, в Windows 2000 и Windows XP можно добавить еще пару пунктов, которые заложены в самой операционной системе, но по умолчанию не включены.
Ковыряясь очередной раз в реестре, обратил внимание на два интересных раздела {C2FBB630-2971-11d1-A18C-00C04FD75D13} и {C2FBB631-2971-11d1-A18C-00C04FD75D13} со своими параметрами, которые отвечают за копирование и перемещение файлов в Windows. В общем, эти две возможности, "Копировать в папку" и "Переместить в папку", можно включить в контекстное меню файлов.
Эти два пункта вызывают стандартное окно для копирования или перемещения файла. Пользоваться ими гораздо удобнее, чем открывать отдельное окно с нужным каталогом, а потом перетаскивать в него файлы.
Чтобы включить новые пункты в контекстное меню надо создать разделы и параметры в реестре:
- для копирования
[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\Copyto] @="{C2FBB630-2971-11d1-A18C-00C04FD75D13}"
- для перемещения
[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\Moveto] @="{C2FBB631-2971-11d1-A18C-00C04FD75D13}"
В примере пункты меню появятся у всех файлов и папок. Чтобы добавить их только в файлы с конкретным расширением, надо добавлять записи в раздел shellex этих файлов. Так, для текстовых файлов это будет выглядеть таким образом:
- для копирования
[HKEY_CLASSES_ROOT\txtfile\shellex\ContextMenuHandlers\Copyto] @="{C2FBB630-2971-11d1-A18C-00C04FD75D13}"
- для перемещения
[HKEY_CLASSES_ROOT\txtfile\shellex\ContextMenuHandlers\Moveto] @="{C2FBB631-2971-11d1-A18C-00C04FD75D13}"
Изначально раздела shellex там нет. Надо создать его и все подразделы самостоятельно.
К сожалению, это работает только в Windows 2000 и XP. Перезагрузка компьютера не понадобится.