【发布时间】:2011-01-24 22:56:19
【问题描述】:
我需要用户能够双击 .pdb 文件并使用 myPgm.exe 打开它。
将文件类型 (myData.pdb) 与可执行文件 (myPgm.exe) 相关联的语法是什么?
它是一个注册表项吗?
【问题讨论】:
标签: inno-setup
我需要用户能够双击 .pdb 文件并使用 myPgm.exe 打开它。
将文件类型 (myData.pdb) 与可执行文件 (myPgm.exe) 相关联的语法是什么?
它是一个注册表项吗?
【问题讨论】:
标签: inno-setup
在 Inno Setup 网站上有 an entry for that in the 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" 告诉 Explorer 使用来自 MYPROG.EXE 的第一个图标。 (",1" 表示第二个图标。)
Root: HKCR; Subkey: "MyProgramFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\MYPROG.EXE"" ""%1"""
"shell\open\command" 是注册表项,指定在资源管理器中双击该类型的文件时要执行的程序。周围的引号在命令行中,因此它可以正确处理长文件名。
【讨论】:
文件关联是一系列注册表项。欲了解更多信息,请查看How to Use File Associations Microsoft Sample。
如果您不想创建系统范围的文件关联,也可以创建specific user file associations。
要从您的脚本创建注册表项,请阅读ISS Documentation: Registry Section。如果您发现任何问题,请提出更具体的问题。
【讨论】:
这对我很有效。 只需重命名 MYEXTENSION
[Registry]
Root: HKA ; Subkey: "Software\Classes\.MYEXTENSION"; ValueData: "{#MyAppName}"; Flags: uninsdeletevalue; ValueType: string; ValueName: ""
Root: HKA ; Subkey: "Software\Classes\{#MyAppName}"; ValueData: "{app}\{#MyAppExeName}"; Flags: uninsdeletekey; ValueType: string; ValueName: ""
Root: HKA ; Subkey: "Software\Classes\{#MyAppName}\DefaultIcon"; ValueData: "{app}\{#MyAppExeName},0"; ValueType: string; ValueName:""
Root: HKA ; Subkey: "Software\Classes\{#MyAppName}\shell\open\command"; ValueData: """{app}\{#MyAppExeName}"" ""%1"""; ValueType: string; ValueName: ""
【讨论】:
#define MyAppAssocExt ".mp3"
和
[Registry]
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocExt}\OpenWithProgids"; ValueType: string; ValueName: "{#MyAppAssocKey}"; ValueData: ""; Flags: uninsdeletevalue
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}"; ValueType: string; ValueName: ""; ValueData: "{#MyAppAssocName}"; Flags: uninsdeletekey
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\{#MyAppExeName},0"
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#MyAppExeName}"" ""%1"""
Root: HKA; Subkey: "Software\Classes\Applications\{#MyAppExeName}\SupportedTypes"; ValueType: string; ValueName: ".myp"; ValueData: ""
[Icons]
Name: "{group}\도깨비 플레이어"; Filename: "{app}\XMPlayer.exe"
Name: "{userdesktop}\도깨비 플레이어"; Filename: "{app}\XMPlayer.exe"; WorkingDir: "{app}"; IconFilename: "{app}\XMPlayer.exe";
Name: "{group}\{cm:UninstallProgram,Goblin Player}"; Filename: "{uninstallexe}";
【讨论】: