Я хочу настроить свое приложение на ассоциацию файлов в Windows (дополнительная сложность: расширение файла может конфликтовать с каким-либо другим несвязанным приложением). Как лучше всего справиться с такой ситуацией? Скорее всего, у пользователя не будет и того, и другого, но если они есть, что лучше всего сделать?
Я искал stackoverflow и различные другие сайты в Интернете и имею общее представление о том, как это сделать (я пробовал, и он работает), но не могу найти исчерпывающую ссылку о том, как это лучше всего сделать.
В некоторых справочниках говорится, что нужно помещать записи в реестр в HKEY_CLASSES_ROOT. Некоторые говорят, что не делайте этого, а вместо этого поместите это в HKEY_LOCAL_MACHINE \ Software \ Classes.
Нужно ли также регистрировать приложение в HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ App Paths или HKEY_CLASSES_ROOT \ Applications (и является ли это даже технически правильным местоположением со ссылкой на обсуждение HKEY_CLASSES_ROOT и HKEY_LOCAL_MACHINE \ Software \ Classes выше)?
Я также видел несколько страниц с советами по настройке "CurVer" и "OpenWithProgids", но я не уверен, как они могут помочь.
Я обнаружил, что могу просто создавать
HKEY_LOCAL_MACHINE \ Software \ Classes.aaa (по умолчанию) AAAapp
HKEY_LOCAL_MACHINE \ Software \ Classes \ AAAapp (по умолчанию) AAAapp DefaultIcon "% mypath% \ to \ AAAappIcon.ico" shell \ open \ command "% mypath% \ to \ AAAapp.exe" "% 1"
и это работает. Я не создавал раздел реестра App Paths или Applications, поэтому эти ключи не влияют на это. Кроме того, вышеупомянутое, похоже, не предусматривает хорошей обработки случая, когда в системе уже существует ассоциация для расширения файла «.aaa».
Любое руководство приветствуется!