Соединение расширений файла с программой

Для C++ Вы могли попробовать CodeControl, Comeau или тот от code.vcer.net .

7
задан Cyclone 12 October 2009 в 20:48
поделиться

1 ответ

Для краткости я использую поддельный корневой ключ. На практике замените 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 .

18
ответ дан 6 December 2019 в 10:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: