Для этого есть запись в FAQ на веб-сайте Inno Setup. Вот цитата из соответствующего раздела FAQ:
Создание ассоциаций файлов
Сначала установите директиву [Setup]
для секции ChangesAssociations
на yes
. Затем создайте [Registry]
записей, как показано ниже.
[Registry]
Root: HKCR; Subkey: ".myp"; ValueType: string; ValueName: ""; ValueData: "MyProgramFile"; Flags: uninsdeletevalue
".myp"
- это расширение, которое мы связываем. "MyProgramFile"
- это внутреннее имя для типа файла, которое хранится в реестре. Убедитесь, что вы используете уникальное имя для этого, чтобы случайно не перезаписать раздел реестра другого приложения.
Root: HKCR; Subkey: "MyProgramFile"; ValueType: string; ValueName: ""; ValueData: "My Program File"; Flags: uninsdeletekey
"My Program File"
выше - это имя для типа файла, как показано в проводнике.
Root: HKCR; Subkey: "MyProgramFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\MYPROG.EXE,0"
"DefaultIcon"
- это раздел реестра, в котором указано имя файла, содержащее значок, связанный с типом файла. ",0"
говорит Исследователю использовать первый значок из MYPROG.EXE
. (",1"
будет означать второй значок.)
Root: HKCR; Subkey: "MyProgramFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\MYPROG.EXE"" ""%1"""
"shell\open\command"
- это раздел реестра, который указывает программу, которая будет выполняться при двойном щелчке файла этого типа в Проводнике. Окружающие кавычки находятся в командной строке, поэтому он правильно обрабатывает длинные имена файлов.