Как изменить ассоциации файлов в Inno-setup
Мне нужно, чтобы пользователь мог дважды щелкнуть по a .pdb-файл и откройте его с помощью myPgm.исполняемый.
каков синтаксис для связывания типа файла (myData.pdb) с исполняемым файлом (myPgm.exe)?
Это запись в реестре?
2 ответов
Ассоциация файлов представляет собой ряд записей реестра. Для получения дополнительной информации, взгляните на Как использовать ассоциации файлов Microsoft Sample.
Если вы не хотите создавать системные ассоциации файлов, вы можете создать определенные ассоциации файлов пользователя тоже.
чтобы создать записи реестра из вашего скрипта, прочитайте документация МКС: раздел реестра. Если вы обнаружите какие-либо проблемы вернуться с более конкретный вопрос.
здесь запись для этого в FAQ на веб-сайте Inno Setup. Вот цитата из соответствующего раздела FAQ:
Создание Ассоциаций Файлов
задать [Setup]
директива разделе ChangesAssociations
to 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"
это раздел реестра, который указывает программу, выполняемую при двойном щелчке файла данного типа в Проводнике. Окружающие кавычки находятся в командной строке, поэтому он правильно обрабатывает длинные имена файлов.