如何在Inno-setup中更改文件关联

Phi*_*enn 7 inno-setup

我需要用户能够双击.pdb文件并使用myPgm.exe打开它.

将文件类型(myData.pdb)与可执行文件(myPgm.exe)相关联的语法是什么?

它是注册表项吗?

Cra*_*een 13

在Inno Setup网站的常见问题解答中一个条目.以下是常见问题解答相关部分的引用:

创建文件关联

首先将[Setup]section指令设置ChangesAssociationsyes.然后创建[Registry]条目,如下所示.

[Registry]
Root: HKCR; Subkey: ".myp"; ValueType: string; ValueName: ""; ValueData: "MyProgramFile"; Flags: uninsdeletevalue
Run Code Online (Sandbox Code Playgroud)

".myp"是我们关联的扩展."MyProgramFile"是存储在注册表中的文件类型的内部名称.请确保为此使用唯一名称,这样您就不会无意中覆盖其他应用程序的注册表项.

Root: HKCR; Subkey: "MyProgramFile"; ValueType: string; ValueName: ""; ValueData: "My Program File"; Flags: uninsdeletekey
Run Code Online (Sandbox Code Playgroud)

"My Program File" 上面是资源管理器中显示的文件类型的名称.

Root: HKCR; Subkey: "MyProgramFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\MYPROG.EXE,0"
Run Code Online (Sandbox Code Playgroud)

"DefaultIcon"是注册表项,指定包含与文件类型关联的图标的文件名.",0"告诉资源管理器使用第一个图标MYPROG.EXE.(",1"意味着第二个图标.)

Root: HKCR; Subkey: "MyProgramFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\MYPROG.EXE"" ""%1"""
Run Code Online (Sandbox Code Playgroud)

"shell\open\command"是注册表项,指定在资源管理器中双击该类型的文件时要执行的程序.周围的引号位于命令行中,因此它可以正确处理长文件名.


jac*_*ate 3

文件关联是一系列注册表项。有关详细信息,请查看如何使用文件关联 Microsoft 示例

如果您不想创建系统范围的文件关联,您也可以创建特定的用户文件关联

要从脚本创建注册表项,请阅读ISS 文档:注册表部分。如果您发现任何问题,请提出更具体的问题。