Inno Setup; 创建桌面图标以覆盖当前图标

5
我最近尝试使用Inno Setup,已经解决了很多问题,但还有一个问题让我困扰。问题是如何创建桌面快捷方式和图标。
我尝试了使用示例脚本并将其放入我的脚本中,也尝试了使用两个不同的安装向导(一个来自Inno Setup,另一个从InnoIDE下载的)。经过一些搜索,我终于找到了一个可以创建桌面项的代码(安装程序一度没有创建桌面图标),但我的问题是图标仍然是Adobe的而不是我们公司的图标。
在我加入这家公司之前使用的旧安装程序(InstalShield)中,程序员设定了当最终用户下载后,桌面上会出现带有公司标志的链接,点击该链接会启动主PDF文件。我们使用的所有文件都是PDF文件。我在安装程序中指定了一个图标,但我认为那只是为安装程序本身(在运行时)使用的。
我没有在手册或安装向导中找到使用特定图标创建桌面图标的选项,并尝试在Google上搜索,但无法找到任何其他遇到此问题的人。
是否有方法使我们公司的标志出现在桌面上,而不是Adobe的PDF标志作为主启动文件?或者,即使有一种方法创建快捷方式并具有该标志并链接到主PDF文件,那也可以。非常感谢您提供的任何建议。
1个回答

13

有一个名为IconFilename的参数,它应该可以解决你的问题。例如:

[Icons]
Name: {group}\MyApplication; Filename: {app}\MyApplication.exe; WorkingDir: {app}; IconFilename: {app}\MyApplication.ico; Comment: "MyApplication"; Components: MyApplication; 
Name: {commondesktop}\MyApplication; Filename: {app}\MyApplication.exe; WorkingDir: {app}; IconFilename: {app}\MyApplication.ico; Comment: "MyApplication"; Components: MyApplication;
您可以自由地使用exedllico文件,通过IconFilename属性获取您公司的标志图标。
欲获得更详细信息,请访问以下链接: http://www.jrsoftware.org/ishelp/index.php?topic=iconssection

如果你安装到 {app},请使用 {app}。 - Deanna
你也可以在脚本开头定义类似于 #define InstallPath "{pf}\MyPublisher\MyApplicationName" 的安装路径。我假设你已经具备了InnoSetup的基本知识,抱歉。 - Emir Akaydın
抱歉,我应该提到我是Inno的初学者。我以前从未编写过任何程序,这是为了我的工作,所以我有限的学习时间。但我将其更改为应用程序,但随后出现了此消息:错误:指令或参数“Components”表达式错误:参数“Components”包括未知组件。我将其保留为“MyApplication”,我认为现在是问题所在。我尝试用我的定义字段之一(如MyAppExe)替换它,但仍然出现错误。我不确定文件名是否放在那里还是主可执行文件。 - Renoto
不是所有参数都是必需的。您可以简单地删除“Components:MyApplication;”部分,它应该可以工作。组件帮助您在同一安装包中安装多个组件。例如,您有一个服务器和一个客户端应用程序。您在[Components]部分下定义两个项目,并添加“Components:...;”行以显示哪个图标属于哪个组件。这样,如果用户仅选择安装一个组件,则只会创建此组件的快捷方式。这适用于其他部分,如[Dirs],[Files],[Run]等。 - Emir Akaydın
谢谢!我已经删除了最后的组件,并将“Comment: "MyApplication"]”更改为“Comment: "{#MyAppName}"”。这些更改后编译正常,几乎完全符合我的要求。唯一的问题是它现在创建了两个桌面图标。一个是我想要的,另一个是PDF。两个快捷方式都可以使用。我也有一个[Task]部分,它创建了一个桌面图标,并被列为“附加图标”,但如果我删除[Tasks]并尝试编译,它会中止并说“参数“Tasks”在[Icons]下的一行代码中包含未知任务。” 它读取Tasks:“desktopicon”; - Renoto
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接