Как программно создать файловую ассоциацию, которая работает в XP, Vista и Windows 7 - PullRequest
6 голосов
/ 27 ноября 2009

Я хочу иметь возможность зарегистрировать расширение моего файла из моей программы. (Свяжите тип файла с моей программой)

Есть много статей по этому поводу, но обсуждаемая техника (возиться с реестром), насколько я понимаю, подходит только для Windows XP.

Каков наилучший способ связать тип файла с программой, чтобы она работала также под XP, Vista и Windows 7? (Есть ли рабочие примеры кода?)

Можно выбрать ClickOnce, но он регистрирует тип файла только во время установки, в то время как я хочу иметь возможность регистрировать типы файлов во время выполнения.

Ответы [ 3 ]

6 голосов
/ 27 ноября 2009

В Windows Vista (и, вероятно, в Windows 7) ассоциации файлов изменились: если файл уже связан с программой, и вы повторно связываете его, двойной щелчок по файлу не откроет его с новой программой.Вместо этого ассоциация добавляется в список в разделе «Открыть с помощью».Также посмотрите эту небольшую дискуссию о регистрации вашего приложения для ассоциаций в Vista (Веб-архив, исходная ссылка больше не существует).

Я не уверен, стоит ли это изменитьТем не менее, в этом посте обсуждаются различные ключи реестра, которые вы можете использовать.Но, что еще лучше, эта статья о проекте кода дает вам готовый код для связывания файла во время выполнения.Я не знаю, работает ли он по-другому на Vista +, хотя.

1 голос
/ 31 декабря 2009

Если вам нужно добавить сопоставление файлов в сценарии без прав администратора, вы можете использовать пользовательские сопоставления файлов, которые описаны в этой статье . Проверьте " Пользовательские ассоциации файлов ".

0 голосов
/ 27 ноября 2009

Было несколько изменений с XP на Vista / 7 в отношении ассоциации файлов, поэтому большинство примеров для XP все еще должно работать. Единственное, о чем вы должны беспокоиться, это параметр «Программы по умолчанию» в Vista / 7, которого не было в XP и который отменяет регистрацию других файловых ассоциаций.

...