Inno Setup:控制面板图标不显示
Posted
技术标签:
【中文标题】Inno Setup:控制面板图标不显示【英文标题】:Inno Setup: Control panel icon does not show 【发布时间】:2014-01-14 13:26:35 【问题描述】:我有一个 Inno Setup 项目。一切都很好,但我在“程序和功能”控制面板区域中看不到应用程序图标。我确实在其他地方看到了这个图标。
脚本文件确实有以下内容:
[Setup]
SetupIconFile=#MySetupImageIco
是否需要设置其他内容才能使应用程序图标显示在“程序和功能”控制面板小程序中?我正在针对 Windows 8.1 进行测试。
更新: 基于 cmets,我尝试在我的脚本中设置:
UninstallDisplayIcon=#MySetupImageIco
遗憾的是,这并没有在“添加/删除”又名“程序和功能控制面板”小程序中生成图标。
更新 #2: 获胜的解决方案是:
UninstallDisplayIcon=app\#MyAppExeName
当然,脚本顶部必须有一个#define MyAppExeName "whatever.exe"
。有趣的是,当我指定 ico 文件的路径时,我没有成功。 Windows 8 和 8.1 的 Inno Setup 需要我刚才所说的。 Windows 7 使用 UninstallDisplayIcon
并指定 ICO 的路径或不使用,只是 Windows 8 和 8.1 有点不同。
【问题讨论】:
我没有关注你的问题。在我的脚本顶部,我有一个#define 语句,它定义了 ICO 文件的路径。编译器不会抱怨,也不会产生警告或错误。这是你的问题吗? 啊,是的,对不起,我累了。UninstallDisplayIcon
很可能是您正在寻找的(如果我们谈论的是“添加/删除程序”控制面板小程序)。
您需要更具体。你在说什么“控制面板图标”?您的应用程序是控制面板小程序吗?还是您指的是“添加/删除程序”图标?
我将 UninstallDisplayIcon 添加到项目中,并会尽快尝试,希望在星期一之前。在我的家用 PC 上执行虚拟 Windows 框时遇到问题。似乎我的 Acer i7 处理器能够支持 Virtual Box,但不能。无论如何,这似乎是解决办法。我会让大家知道的。 Ken 对上述问题的回答是添加/删除程序控制面板小程序中应用程序名称左侧的图标,现在称为“程序和功能”。如果没记错的话,上次在 Windows XP 中使用了“添加/删除程序”。
TLama 您应该输入您的评论作为答案,以便我可以将问题标记为已解决。你应该得到功劳。
【参考方案1】:
解决办法是:
添加
[Setup]
UninstallDisplayIcon=app\#MyAppExeName
指定实际的 ico 文件不起作用,但该条目起作用。
我针对 Windows 8/8.1 进行了测试。 Windows 7 可以在没有这条线的情况下运行。
【讨论】:
我遇到了控制面板显示通用图标的问题,我想更改它。我做了SetupIconFile=MyIcon.ico
,安装输出现在显示图标,但控制面板中没有显示相同的图标,这会解决这个问题吗?
我不确定你的问题。我刚刚在 Windows 10 的控制面板程序和功能中检查了我的应用程序,我确实看到了 ICO 图像。我建议在 Oracle 的 Virtual Box 上创建一个全新安装的操作系统,然后重试。
UninstallDisplayIcon
指定的路径按原样保存以卸载目标机器上的注册表项。所以它必须指向目标机器上存在的文件。它没有像SetupIconFile
那样嵌入到安装程序中。所以UninstallDisplayIcon
甚至可以指向.ico
文件,如果需要的话,但是.ico
文件需要显式部署到目标机器(例如使用[Files]
部分)。【参考方案2】:
我也可以确认这是一个可行的解决方案(Win7 x64):
[Setup]
UninstallDisplayIcon=uninstallexe
我真正喜欢这里的是它独立于应用名称等。只是卸载程序的纯别名。
发现于https://dutchgemini.wordpress.com/2011/05/03/innosetup-and-the-missing-uninstall-icon-on-windows-7
【讨论】:
但是你想要你的应用程序图标,而不是通用设置图标。 @MartinPrikryl,它准确地添加了您的应用程序图标。也许,对于复杂的场景(多个图标、单独的应用程序作为修复/卸载等)它以另一种方式工作,但对于典型的用例来说它非常方便(并且可能作为工具过程的一部分生成) 好的,我明白了,如果你设置SetupIconFile
,它可以工作。
我最喜欢这个选项,因为我确实设置了SetupIconFile
【参考方案3】:
添加
应该是
UninstallDisplayIcon= appForwardSlash#MyAppExeName
我针对 Windows 10 最新版本对其进行了测试。
【讨论】:
我刚刚检查了我的代码,您对斜线的看法是正确的,但不确定“forwardSlash”是否等同于“\”。我正在使用反斜杠并且一直在使用,但没有注意到缺少的斜杠。我在编辑之前检查了上面的答案,发现我添加了一个反斜杠,但斜杠没有显示,所以我将其设为正斜杠。 没有意义,当然是反斜杠。这是一条 Windows 路径。 (尽管一如既往,您可以使用正斜杠,Windows 也可以识别,但这是不正确的)。【参考方案4】:我对您的#MyAppExeName
解决方案有疑问,因为我使用了OutputBaseFilename
指令。更优雅的解决方案是:
UninstallDisplayIcon=srcexe
【讨论】:
不要那样做。一旦用户删除原始安装程序文件(srcexe
解析为),它就会中断。以上是关于Inno Setup:控制面板图标不显示的主要内容,如果未能解决你的问题,请参考以下文章
windows中,要改变屏幕保护程序的设置,首先双击控制面板窗口中的(),