如何在Inno Setup中引用文件关联的自定义图标?

时间:2014-05-30 16:08:24

标签: windows icons inno-setup launch4j

我的应用程序创建文档。我希望它创建的文档有一个特殊的图标,而不仅仅是应用程序图标。在OS X上,有一种明确的方法可以通过Info.plist完成此操作。但是,在Windows中,我遇到了麻烦。我正在使用Launch4J和Inno Setup。

Inno Setup describes how to specify an icon via a file association。该示例使用包含多个图标的应用程序EXE,将它们引用为0,1,2等。但是,Launch4J似乎仅支持使用单个图标(应用程序图标)创建EXE。所以这个例子对我不起作用。

以下是我当前的Icons部分:

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon

以下是一个示例文件关联:

[Registry]
Root: HKCR; Subkey: ".ext"; ValueType: string; ValueName: ""; ValueData: "EXT"; Flags: uninsdeletevalue; Tasks: associateext
Root: HKCR; Subkey: "EXT"; ValueType: string; ValueName: ""; ValueData: "EXT"; Flags: uninsdeletekey; Tasks: associateext
Root: HKCR; Subkey: "EXT\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\MyProg.exe,0"; Tasks: associateext
Root: HKCR; Subkey: "EXT\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\MyProg.exe"" ""%1"""; Tasks: associateext

如何在Inno Setup中引用文件关联的自定义图标? (或者在Launch4J EXE中嵌入多个图标?)

1 个答案:

答案 0 :(得分:1)

您可以指向任何图标文件或从EXE / DLL文件中选择一个图标:

Root: "HKCR"; Subkey: "EXT\DefaultIcon"; ValueType: string; 
 ValueData: """PATH\Icon.file"""; Flags: uninsdeletekey; Tasks: associateext

在你的情况下,它可能是:

Root: "HKCR"; Subkey: "EXT\DefaultIcon"; ValueType: string; 
 ValueData: """{app}\MyCustomIcon.ico"""; Flags: uninsdeletekey; Tasks: associateext