Связывание расширений файлов с программой

Я получаю, как это сделать, и раньше я был на http://www.codeproject.com/KB/vb/VBFileAssociation.aspx . Мой вопрос в том, что это делает, можно ли его отменить? Что делать, если вы не знаете, где будет ваша программа, и вы просто проверяете ее сейчас? Есть ли способ для этого «найти» вашу программу или простой способ редактирования там, где она открывается? Если уж на то пошло, можно ли сказать, был ли файл уже связан, является ли проблема попыткой и повторной привязкой? Наконец, как вы можете установить файл .ico, который он использует?

Спасибо за помощь, я почти ничего не знаю о реестре, и это смущает меня LOL …

    Для краткости я использую фальшивый корневой ключ. На практике замените Hive_Key на HKEY_LOCAL_MACHINE для системных настроек по умолчанию или HKEY_CURRENT_USER для пользовательских настроек. Любой из этих ключей может существовать, или и то, и другое. Если они оба существуют, ключ HKCU имеет приоритет.

    Чтобы связать расширение с типом файла, вам необходимо установить значение по умолчанию для ключа расширения ( Hive_Key\Software\Classes\.ext ) с выбранным типом файла, установив значение ключа по умолчанию.

    Фактическая запущенная программа, а также другие данные типа файла находятся в типе файла. Типы файлов отмечены тем, что называется ProgID (сокращение от «Programmatic Identifier», которое является более легко читаемой версией идентификатора classа). Ключи ProgID находятся в Hive_Key\Software\Classes , а примерное значение для этой иллюстрации может быть ext_auto_key .

    ProgID может иметь значение по умолчанию, которое будет дружественным описанием типа файла в проводнике (например, «Документ Microsoft Word»). Это зависит от вас, чтобы вы выбрали описание, которое легко понять для пользователей.

    В ProgID может быть подразделение DefaultIcon , в котором хранится значок типа файла. Этот путь значка является значением по умолчанию этого ключа.

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

    Эти пункты контекстного меню являются Verbs . В нашем примере глагол, который открывает файл с помощью Блокнота, будет выглядеть так: Hive_Key\Software\Classes\ext_auto_file\shell\open\command со значением по умолчанию notepad.exe %1 .

    Здесь вы поместите свой программный путь. Если ваша программа находится в системе PATH, как notepad.exe, вам не нужно указывать полный путь. В более вероятном случае вам нужно указать путь к вашему exe. В целях тестирования вы можете просто установить его как свою директорию сборки.

    Вы спросили, как проверить этот материал, и это можно сделать, предварительно проверив значение по умолчанию для ключа расширения, чтобы получить ProgID, а затем проверив подраздел shell с ключом ProgID, чтобы получить по умолчанию глагол, а затем проверить \shell\verb\command чтобы получить путь к запущенной программе.

    Возможно, будет regedit.exe открыть regedit.exe и просмотреть эти ключи реестра для других типов файлов, чтобы лучше понять, как все это работает.

    Кроме того, приведенное выше все допустимо, если конкретное расширение не находится под контролем программы, установленной по умолчанию (программы по умолчанию) на панели управления. Вы можете проверить этот статус, проверив наличие ключа HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\FileExts\.EXT\UserChoice . Если это так, вам нужно будет отменить контроль программ по умолчанию, прежде чем ваши настройки вступят в силу. Это можно сделать, удалив этот UserChoice .

    Interesting Posts

    Как упорядочить список переменных с помощью grid.arrange?

    Преобразование JSONArray в String Array

    Резервное копирование и восстановление Windows 10 Пуск меню, заменяющий vedatamodel.edb: никаких эффектов?

    Внешний жесткий диск не обнаружен

    Как обеспечить, чтобы событие было подписано только один раз

    JavaFX Как установить фоновое изображение сцены

    Медленнее, чем ожидалось, скорости беспроводной сети 802.11n

    API Google Text-To-Speech

    Когда использовать конструктор и когда использовать метод getInstance () (статические заводские методы)?

    Проводник Windows Explorer для обеспечения функциональности с вкладками в Windows 7?

    Что синхронизируется на компьютерах с использованием одного и того же идентификатора Windows Live ID?

    Панель c # для рисования графики и прокрутки

    Инструмент поиска и замены, который может обрабатывать несколько файлов и подпапок

    Арифметические операции с HH: MM: SS раз в пакетном файле

    Обрезать bitmap

    Давайте будем гением компьютера.