Как изменить ассоциации файлов в Inno-setup - PullRequest
7 голосов
/ 25 января 2011

Мне нужно, чтобы пользователь мог дважды щелкнуть файл .pdb и открыть его с помощью myPgm.exe.

Каков синтаксис для сопоставления типа файла (myData.pdb) с исполняемым файлом?(myPgm.exe)?

Это запись реестра?

Ответы [ 2 ]

13 голосов
/ 25 января 2011

Для этого есть запись в 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" - это раздел реестра, который указывает программу, которая будет выполняться при двойном щелчке файла этого типа в Проводнике. Окружающие кавычки находятся в командной строке, поэтому он правильно обрабатывает длинные имена файлов.

3 голосов
/ 25 января 2011

Файловая ассоциация - это серия записей реестра. Для получения дополнительной информации посмотрите Как использовать ассоциации файлов Microsoft Sample .

Если вы не хотите создавать общесистемные ассоциации файлов, вы можете создать определенных пользовательских файловых ассоциаций .

Чтобы создать записи реестра из вашего сценария, прочитайте документацию ISS: Раздел реестра . Если вы обнаружите какие-либо проблемы, вернитесь с более конкретным вопросом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...