Для C++ Вы могли попробовать CodeControl, Comeau или тот от code.vcer.net .
Для краткости я использую поддельный корневой ключ. На практике замените Hive_Key
на HKEY_LOCAL_MACHINE
для системных настроек по умолчанию или HKEY_CURRENT_USER
для индивидуальных настроек пользователя. Допускается существование любого из этих ключей или обоих. Если они оба существуют, ключ HKCU
имеет приоритет.
Чтобы связать расширение с типом файла, вам необходимо установить значение по умолчанию для ключа расширения ( Hive_Key \ Software \ Classes \ .ext
) с выбранным типом файла, задав значение ключа по умолчанию.
Фактически запущенная программа, а также другие сведения о типе файла находятся в типе файла. Типы файлов обозначаются так называемым ProgID
(сокращенно от «Программный идентификатор», который является более удобочитаемой версией идентификатора класса). Ключи ProgID находятся в Hive_Key \ Software \ Classes
, и примерное значение для этой иллюстрации может быть ext_auto_key
.
ProgID может иметь значение по умолчанию, которое будет удобным описание типа файла в проводнике (например, «Документ Microsoft Word»). Вам решать, выбрать ли вы описание, которое легко понять для пользователей.
ProgID может иметь подраздел, DefaultIcon
, в котором хранится значок типа файла. Путь к значку является значением по умолчанию для этого ключа.
Ключ ProgID может быть подразделом, оболочкой
, которая будет содержать элементы контекстного меню в файлах, и программой, которую этот элемент контекстного меню будет вызывать . Аналогично значению ProgID по умолчанию, значение по умолчанию для ключа глагола - это текст, который будет отображаться в контекстном меню. Значение по умолчанию этого ключа оболочки
имеет имя ключа команды по умолчанию, которое вызывается, когда пользователь дважды щелкает файл.
Этими пунктами контекстного меню являются Глаголы
. В нашем примере команда, открывающая файл в Блокноте, будет выглядеть так:
Hive_Key \ Software \ Classes \ ext_auto_file \ shell \ open \ command
со значением по умолчанию notepad.exe% 1
.
Здесь вы должны указать путь к программе. Если ваша программа находится в системном PATH, как notepad.exe, вам не нужно указывать полный путь . В более вероятном случае вам нужно будет указать путь к вашему exe. В целях тестирования вы можете просто установить его в качестве каталога сборки.
Вы спросили, как это проверить, и это можно сделать, сначала проверив значение ключа расширения по умолчанию для получения ProgID, а затем проверив подраздел оболочки
ключа ProgID для получения команды по умолчанию, затем проверка \ shell \ verb \ command
, чтобы получить путь к запущенной программе.
Было бы полезно открыть ] regedit. exe
и просмотрите эти разделы реестра, чтобы найти другие типы файлов, чтобы получить лучшее представление о том, как все это работает.
Кроме того, все вышесказанное действительно, если конкретное расширение не находится под контролем программы, установленной по умолчанию (по умолчанию Программы) в Панели управления. Вы можете проверить этот статус, проверив наличие ключа HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ .EXT \ UserChoice
. Если это так, вам нужно будет отозвать управление программами по умолчанию, прежде чем ваши настройки вступят в силу. Это можно сделать, удалив этот подключ UserChoice
.
HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ .EXT \ UserChoice
. Если это так, вам нужно будет отозвать управление программами по умолчанию, прежде чем ваши настройки вступят в силу. Это можно сделать, удалив этот подраздел UserChoice
. Вы можете проверить этот статус, проверив наличие ключа HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ .EXT \ UserChoice
. Если это так, вам нужно будет отозвать управление программами по умолчанию, прежде чем ваши настройки вступят в силу. Это можно сделать, удалив этот подключ UserChoice
.