Ссылки в контекстном меню Windows 7

В ходе этой статьи мы разберем как добавлять ссылки на избранные программы в контекстное меню рабочего стола Windows или «Моего компьютера».

Каскадное меню в Windows 7

Каскадное меню в описании "Моего компьютера"

Инструкция разделена на 2 части:

1. Создание каскадных меню в контекстном и добавление ярлыков.
2. Добавление функциональности ярлыкам путем их регистрации.

Часть 1. Создание контекстных меню и добавление ярлыков

1. Откройте редактор реестра (напишите «regedit» в строке «Выполнить» или строке поиска меню «Пуск» и нажмите Enter).

2. Перейдите в следующую ветку:

HKEY_CLASSES_ROOT\Directory\Background\shell

Если Вы хотите добавить каскадное меню в контекстое меню «Моего компьютера», тогда перейти нужно в эту ветку:

HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell

3. Теперь необходимо создать новый ключ реестра в разделе «Shell». Нажмите правой кнопкой мыши на ключе «Shell» и выберите «Создать -> Раздел». Дайте ему какое-то оригинальное и неподражаемое имя, например «Menu1» (без кавычек).

4. Теперь выберите только что созданный раздел «Menu1». В правой части окна нам необходимо создать 4 строковых параметра:

MUIVerb
SubCommands
Icon
Position

Параметры Icon и Position Вы можете и не создавать (они опциональны), а вот MUIVerb и SubCommands — обязательны.

MUIVerb — это имя каскадного меню, которое будет отображаться в контекстном меню. Вы можете назвать его как угодно, например, «Приложения», «Браузеры» и т.д.

SubCommands содержит список команд, разделенных точкой с запятой (;). Эти команды будут показаны в каскадном меню. Вы не можете напрямую добавить ярлык приложения. Сначала в этом списке Вам нужно дать команде имя, а после этого зарегистрировать ее согласно инструкции во 2 Части статьи.

5. Давайте проясним насчет строкового параметра «SubCommands».

Предположим, что Вы уже создали каскадное меню «Apps» (переводчику неохота самому делать скрины, поэтому он не перевел это слово), как это описано в пункте 3, и теперь Вы хотите добавить в него ярлыки Notepad (блокнота) и Calculator (калькулятора). В таком случае Вам нужно задать такое значение параметру «SubCommands»:

notepad;calc

Вы можете использовать и команды «Блокнот» и «Калькулятор», но в данном случае нужно будет использовать их во 2 части этой инструкции.

6. Параметр Icon используется для отображения иконки. В нашем примере его значение explorer.exe, поэтому у каскадного меню «Browsers» значок так горячо всеми любимого браузера.

Добавление каскадного меню в Windows 7

7. Параметр «Position» используется для определения позиции каскадного меню в контекстном. По умолчанию это середина контекстного меню, но Вы можете выбрать значения Top (сверху) или Bottom (снизу).

8. Вы можете создать более одного меню, снова пройдя по пунктам 3 и 4.

Часть 2. Добавление функциональности ярлыкам путем их регистрации

Как только Вы добавите ярлыки программ в какскадные меню, Вам необходимо будет их зарегистрировать следующим образом:

1. Перейдите в следующий раздел:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\Shell

2. В этом разделе нам нужно создать новые ключи для каждой из команд, указанных ранее в строковом параметре SubCommands.

В нашем примере мы использовали 2 команды: notepad и calc, поэтому нам нужно создать два ключа в разделе «CommandStore\Shell» с такими же именами.

3. После создания ключа выберите его и в правой части окна редактора реестра задайте параметру Default имя, которые Вы хотите видеть в каскадном меню. Например, введите сюда Notepad или Calculator или любую другую строку.

4. Если Вы также хотите добавить ярлыку иконку, создайте новый строковой параметр с именем icon и установите его значением путь к EXE файлу приложения или любой другой иконке. Например, чтобы показать иконку «блокнота», Вы должны задать параметру Icon значение notepad.exe

5. И теперь последний шаг! В каждом из только что созданных ключей создайте новый ключ и назовите его command.
Выберите его и в правой части окна установите значением Default путь к EXE-файлу необходимой программы. Например, если ярлык должен открывать «блокнот», то для Command должно быть установлено значение notepad.exe

Добавление каскадного меню в Windows 7

PS:

Блокнот является родным Windows-приложением, поэтому Вы можете не указывать полный путь к нему, но если Вы хотите запускать стороннюю программу, то необходимо указать полный путь к ее EXE-файлу.

Автор в оригинальном тексте приводит уже готовые reg-файлы, поэтому можно взять их за основу и сделать это все намного быстрее.

Контекстное меню рабочего стола:

    Windows Registry Editor Version 5.00
 
    [HKEY_CLASSES_ROOT\DesktopBackground\Shell\Menu1]
    «MUIVerb»=«Apps»
    «SubCommands»=«notepad;calc»
    «icon»=«explorer.exe»
 
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad]
    @=«Notepad»
    «icon»=«notepad.exe»
 
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad\command]
    @=«notepad.exe»
 
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc]
    @=«Calculator»
    «icon»=«calc.exe»
 
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc\command]
    @=«calc.exe»

Контекстное меню «Мой компьютер»:

    Windows Registry Editor Version 5.00
 
    [HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Menu1]
    «MUIVerb»=«Apps»
    «SubCommands»=«notepad;calc»
    «icon»=«explorer.exe»
 
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad]
    @=«Notepad»
    «icon»=«notepad.exe»
 
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad\command]
    @=«notepad.exe»
 
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc]
    @=«Calculator»
    «icon»=«calc.exe»
 
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\calc\command]
    @=«calc.exe»

Примечание:

Если Вы хотите удалить созданное каскадное меню, просто удалите ключи, созданные в пункте 3 первой части и пункте 2 второй части статьи.

Источник

Символьные ссылки в Windows

Под ссылками в Windows я понимаются ссылки в NTFS. В FAT механизмов ссылок предусмотрено не было.

Ядро Windows поддерживает следующие виды ссылок:

  • Hard Links — жёсткие ссылки, как в *nix. Доступны начиная с Windows NT4;
  • Junction Points — аналог символических ссылок. Доступен начиная с Windows 2000 (NTFS 5);
  • Symbolic Links — символьные ссылки. Доступны начиная с Windows Vista.

Если вы никогда не имели дела с символическими и жёсткими ссылками, но хотели бы узнать о них, советую прочитать отрывок из документации файлового менеджера FAR:

Жесткие и символические связи

На разделах NTFS также можно создавать жесткие (HardLink) связи для файлов и символические (SymLink) для папок с помощью команды Alt-F6.

Жесткие связи применяются для файлов. Символические связи — для папок и дисков.

Жесткие связи

Жесткая связь (HardLink) — это просто еще одна запись в папке для данного файла.

Когда создается жесткая связь, сам файл не копируется физически, а только появляется под еще одним именем или в еще одном месте, а его старые имя и местонахождение остаются нетронутыми. С этого момента жесткая связь неотличима от первоначальной записи в папке. Единственное отличие — то, что для жесткой связи не создается короткое имя файла, поэтому из программ ДОС она не видна.

Когда меняется размер или дата файла, все соответствующие записи в папках обновляются автоматически. При удалении файла он не удаляется физически до тех пор, пока все жесткие связи, указывающие на него, не будут удалены. Порядок их удаления значения не имеет. При удалении жесткой связи в корзину количество связей у файла сохраняется.

FAR умеет создавать жесткие связи, отображать количество жестких связей для каждого файла в отдельной колонке (по умолчанию это последняя колонка в 9-м режиме панелей), а также сортировать файлы по количеству жестких связей.

Жесткие связи поддерживаются в NTFS, начиная с NT 4.0. Создавать жесткие связи можно только на том же диске, на котором расположен исходный файл.

Символические связи

NTFS начиная с версии 5.0 (Windows 2000/XP) поддерживает символические связи (SymLink). Символические связи папок в Windows 2000/XP известны как «directory junctions» — технология, позволяющая отображать любые локальные папки на любые другие локальные папки. Например, если папка D:\SYMLINK указывает на C:\WINNT\SYSTEM32 в качестве своей цели, то программа, обращающаяся к D:\SYMLINK\DRIVERS, будет на самом деле обращаться к C:\WINNT\SYSTEM32\DRIVERS.

FAR умеет создавать символические связи только на локальных дисках, файловая система которых поддерживает эту возможность (Windows 2000/XP/NTFS 5.0). В отличие от жестких связей, символические связи не обязательно должны указывать на тот же диск.

Напрямую делать символические связи на папки CD-ROM нельзя, но можно это ограничение обойти, смонтировав CD-ROM диск на папку NTFS-раздела.

Там говорится только о Hard Links и Junction Points, но этого вполне достаточно. Symbolic Links действуют так же, как и Junction Points, с той разницей, что могут указывать на файлы (и реализованы в Windows по-другому).

Hard Links можно создавать только на файлы, Junction Points — только на директории, Symbolic Links — на файлы и директории. В дальнейшем под «жёсткими ссылками» подразумеваются Hard Links, под «символьными» — Junction Points и Symbolic Links.

Жёсткие ссылки действительны в пределах одного раздела, символьные — могут пересекать границы разделов. В связи с этим символьные ссылки могут поломаться, если структуру разделов поменять.

Не со всем, что поддерживается ядром, умеет нормально работать эксплорер. Будьте осторожны при использовании Junction Points в версиях Windows до Vista. При удалении Junction Point эксплорер может залезть внутрь директории, на которую ссылается Junction Point и поудалять там всё, а затем удалить Junction Point, хотя должен лишь удалить ссылку. Наверняка могут возникнуть проблемы и при перемещении или копировании Junction Point’ов.

Мне неизвестно, нормально ли в версиях Windows до Vista относятся к Junction Points стандартные утилиты типа rmdir.

Дополнительные материалы по теме

Отмечу англоязычную статью, в которой описаны нюансы использования ссылок и некоторые программы, позволяющие с ними работать. Статья устаревшая, так что в ней говорится только о Hard Links и Junction Points (причём на последние в статье нередко ссылаются, как на symbolic links…).

Хорошее описание всех видов ссылок есть ещё в справке по NTFS Links (дополнение для Total Commander).

Софт

Теперь можно перейти к рассмотрению программ для работы со ссылками. Да-да, если вы не пользуетесь FAR, вам понадобятся отдельные программы. Все программы, перечисленные ниже, бесплатны.

Утилиты от Microsoft

Windows >= Vista

В Windows Vista добавили команду

mklink

для создания символьных и жёстких ссылок.

Windows >= 2000
fsutil hardlink create ссылка файл

Создаёт Hard Link на файл (источник).

linkd ссылка директория

Создаёт Junction Point на директорию (источник). Утилита входит в Microsoft Windows Resources Kit.

Расширения для Explorer

NTFS Link интегрируется в Explorer и добавляет во всплывающее меню, появляюшееся после перетаскивания правой кнопкой мыши, пункты «Create junction point» и «Create hard link». Кроме того, она перехватывает вызовы Explorer’а, обеспечивая нормальное перемещение/копирование/удаление созданных ссылок.

NTFS Links (не путать с дополнением для Total Commander) — абсолютно аналогичная программа.

Я рекомендую: Link Shell Extension — аналогичная программа, обладающая расширенным функционалом и очень подробным описанием.

NTFS Links — дополнение для Total Commander

Страница программы. Плагин может запускаться как отдельная программа, вне Total Commander’а.

FAR

Консольный файловый менеджер FAR уже давно поддерживает Hard Links и Junction Points «из коробки». Для создания ссылки используйте сочетание клавиш Alt-F6.

Junction Link Magic

Junction Link Magic — программа с графическим интерфейсом для создания, изменения и модификации Junction Points.

Junction — консольная программа для создания Junction Points

Junction лучше, чем

linkd

, тем, что не нужно тащить весь Resource Kit.

Источник