Регистрация команд для расширений имен файлов
Сопоставление расширения имени файла с приложением обычно имеет предпочтительное действие, которое возникает при двойном щелчке файла пользователем. Это предпочтительное действие связано с командой, например открытой, которая соответствует действию.
Вы можете зарегистрировать команды, связанные с программным идентификатором (ProgID) для расширения с помощью ключа оболочки, расположенного по адресу HKEY_CLASSES_ROOT\{ProgID}\shell
. См . типы файлов.
Регистрация стандартных команд
Операционная система распознает следующие стандартные команды:
При открытии
Редактировать
Воспроизведение
Печать
Предварительный просмотр
По возможности зарегистрируйте стандартную команду. Наиболее распространенным вариантом является команда Open. Используйте команду "Изменить", только если существует четкое различие между открытием файла и редактированием файла. Например, открытие файла .htm отображается в браузере, а редактирование файла .htm запускает редактор HTML. Стандартные команды локализованы с помощью языкового стандарта операционной системы.
Примечание.
При регистрации стандартных команд не устанавливайте значение по умолчанию для открытого ключа. Значение по умолчанию содержит отображаемую строку в меню. Операционная система предоставляет эту строку для стандартных команд.
Файлы проекта должны быть зарегистрированы для запуска нового экземпляра Visual Studio при открытии файла пользователем. В следующем примере показана стандартная регистрация глаголов для проекта Visual C# .
[HKEY_CLASSES_ROOT\.csproj]
@="VisualStudio.csproj.8.0"
[HKEY_CLASSES_ROOT\.csproj\OpenWithList]
[HKEY_CLASSES_ROOT\.csproj\OpenWithList\VSLauncher.exe]
@=""
[HKEY_CLASSES_ROOT\.csproj\OpenWithProgids]
"VisualStudio.csproj.8.0"=""
[HKEY_CLASSES_ROOT\Applications\VSLauncher.exe]
[HKEY_CLASSES_ROOT\Applications\VSLauncher.exe\Shell]
[HKEY_CLASSES_ROOT\Applications\VSLauncher.exe\Shell\Open]
[HKEY_CLASSES_ROOT\Applications\VSLauncher.exe\Shell\Open\Command]
@="C:\\Program Files\\Common Files\\Microsoft Shared\\MSEnv\\VSLauncher.exe \"%1\""
[HKEY_CLASSES_ROOT\VisualStudio.csproj.8.0]
@="C# Project file"
[HKEY_CLASSES_ROOT\VisualStudio.csproj.8.0\DefaultIcon]
@="C:\\VisualStudioPath\\VC#\\VCSPackages\\csproj.dll,0"
[HKEY_CLASSES_ROOT\VisualStudio.csproj.8.0\shell]
[HKEY_CLASSES_ROOT\VisualStudio.csproj.8.0\shell\Open]
[HKEY_CLASSES_ROOT\VisualStudio.csproj.8.0\shell\Open\Command]
@="\"C:\\Program Files\\Common Files\\Microsoft Shared\\MSEnv\\VSLauncher.exe\" \"%1\""
Чтобы открыть файл в существующем экземпляре Visual Studio, зарегистрируйте DDEEXEC
ключ. В следующем примере показана стандартная регистрация команды для файла .cs Visual C#.
[HKEY_CLASSES_ROOT\.cs]
@="VisualStudio.cs.8.0"
[HKEY_CLASSES_ROOT\.cs\OpenWithList]
[HKEY_CLASSES_ROOT\.cs\OpenWithList\devenv.exe]
@=""
[HKEY_CLASSES_ROOT\.cs\OpenWithProgids]
"VisualStudio.cs.8.0"=""
[HKEY_CLASSES_ROOT\VisualStudio.cs.8.0]
@="C# Source file"
[HKEY_CLASSES_ROOT\VisualStudio.cs.8.0\DefaultIcon]
@="C:\\VisualStudioPath\\VC#\\VCSPackages\\csproj.dll,1"
[HKEY_CLASSES_ROOT\VisualStudio.cs.8.0\shell]
[HKEY_CLASSES_ROOT\VisualStudio.cs.8.0\shell\Open]
[HKEY_CLASSES_ROOT\VisualStudio.cs.8.0\shell\Open\Command]
@="\"C:\\VisualStudioPath\\Common7\\IDE\\devenv.exe\" /dde \"%1\""
[HKEY_CLASSES_ROOT\VisualStudio.cs.8.0\shell\Open\ddeexec]
@="Open(\"%1\")"
[HKEY_CLASSES_ROOT\VisualStudio.cs.8.0\shell\Open\ddeexec\Application]
@="VisualStudio.8.0"
[HKEY_CLASSES_ROOT\VisualStudio.cs.8.0\shell\Open\ddeexec\Topic]
@="system"
Установка команды по умолчанию
Команда по умолчанию — это действие, выполняемое при двойном щелчке файла в Windows Обозреватель. Команда по умолчанию — это команда, указанная в качестве значения по умолчанию для HKEY_CLASSES_ROOT\{ProgId}\Shell
ключа. Если значение не указано, по умолчанию используется первая команда, указанная в списке ключей HKEY_CLASSES_ROOT\{ProgId}\Shell
.
Примечание.
Если вы планируете изменить команду по умолчанию для расширения в параллельном развертывании, рассмотрите влияние на установку и удаление. Во время установки исходное значение по умолчанию перезаписывается.