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