每次更新后固定在任务栏的图标就消失了, 能否优化。
这个问题困扰我很久了,还是反馈一下。应该是能解决的,毕竟我固定的几个浏览器图标一直更新也没消失。
好像是安装包制作方面的问题。
每次更新后固定在任务栏的图标就消失了, 能否优化。
这个问题困扰我很久了,还是反馈一下。应该是能解决的,毕竟我固定的几个浏览器图标一直更新也没消失。
好像是安装包制作方面的问题。
问:需要更详细的解释一下 TaskBarIcon 里的代码
答:当然可以。以下是关于 "TaskBarIcon" 部分代码的详细解释:
Section "TaskBarIcon" secTaskbarIcon CreateShortCut "$APPDATA\Microsoft\Windows\Start Menu\${APP_NAME}.lnk" "$INSTALLDIR\YourApp.exe" \ "IconFile ""$INSTALLDIR\YourApp.ico"" ; IconIndex 0" \ "WorkingDir ""$INSTALLDIR""" \ "Description ""${APP_NAME}"" ; ShortcutName ""${APP_NAME}""" \ "ShowOnlyOnTaskbar" TRUE UpdateIcon "$APPDATA\Microsoft\Windows\Start Menu\${APP_NAME}.lnk" "${INSTALLDIR}\YourApp.ico" SectionEnd
Section "TaskBarIcon" secTaskbarIcon
:定义一个名为 "TaskBarIcon" 的 section。这个 section 将在安装过程中创建任务栏图标。CreateShortCut "$APPDATA\Microsoft\Windows\Start Menu\${APP_NAME}.lnk" "$INSTALLDIR\YourApp.exe"
:创建一个名为 "${APP_NAME}.lnk" 的快捷方式,指向安装目录下的 "YourApp.exe" 文件。这将在用户的启动菜单中创建一个快捷方式。"IconFile ""$INSTALLDIR\YourApp.ico"" ; IconIndex 0"
:设置快捷方式的图标。这里我们使用安装目录下的 "YourApp.ico" 文件作为图标。"WorkingDir ""$INSTALLDIR"""
:设置快捷方式的工作目录。这里我们将其设置为安装目录。"Description ""${APP_NAME}"" ; ShortcutName ""${APP_NAME}"""
:设置快捷方式的描述和显示名称。这里我们将其设置为 "${APP_NAME}"。"ShowOnlyOnTaskbar" TRUE
:设置快捷方式仅在任务栏上显示。这将确保图标不会出现在启动菜单中。UpdateIcon "$APPDATA\Microsoft\Windows\Start Menu\${APP_NAME}.lnk" "${INSTALLDIR}\YourApp.ico"
:在安装和更新过程中更新快捷方式的图标。这将确保任务栏图标在更新软件时保持不变。SectionEnd
:结束 "TaskBarIcon" section。这段代码的主要目的是在安装过程中创建一个任务栏图标,并在更新软件时更新图标。这样,无论何时更新软件,任务栏上的图标都将保持不变。
我刚问了一下大模型,给我的回答是这样的:
这是因为在制作安装包时,NSIS 脚本没有正确处理任务栏图标的更新。当你更新软件时,NSIS 会覆盖原有的安装文件,其中包括应用程序的快捷方式和任务栏图标。为了解决这个问题,你需要在 NSIS 脚本中添加逻辑来更新任务栏图标。
以下是一个简单的示例脚本,用于在安装和更新过程中保留任务栏图标:
!include "MUI2.nsh" !define APP_NAME "YourApp" !define APP_VERSION "1.0.0" !define APP_PUBLISHER "YourCompany" Name "${APP_NAME} ${APP_VERSION}" Caption "${APP_NAME}" Outfile "${APP_NAME}_${APP_VERSION}.exe" InstallDir "$PROGRAMFILES\${APP_NAME}" InstallDirRegKey HKCUSoftware\${APP_PUBLISHER}\${APP_NAME} "" RequestExecutionLevel admin ShowInstDetails show Section "MainSection" secMain ; ... SectionEnd Section "TaskBarIcon" secTaskbarIcon CreateShortCut "$APPDATA\Microsoft\Windows\Start Menu\${APP_NAME}.lnk" "$INSTALLDIR\YourApp.exe" \ "IconFile ""$INSTALLDIR\YourApp.ico"" ; IconIndex 0" \ "WorkingDir ""$INSTALLDIR""" \ "Description ""${APP_NAME}"" ; ShortcutName ""${APP_NAME}""" \ "ShowOnlyOnTaskbar" TRUE UpdateIcon "$APPDATA\Microsoft\Windows\Start Menu\${APP_NAME}.lnk" "${INSTALLDIR}\YourApp.ico" SectionEnd Section "Uninstall" ; ... SectionEnd
在这个示例脚本中,我们创建了一个名为 "TaskBarIcon" 的 section。在这个 section 中,我们首先创建了一个任务栏图标快捷方式,并将其信息存储在应用程序的启动菜单中。然后,我们使用 UpdateIcon
指令在安装和更新过程中更新图标。这样,无论何时更新软件,任务栏上的图标都将保持不变。
ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。
主仓库地址:Hi-Windom/Sillot
文档地址:sillot.db.sc.cn
注意事项:
Mobi.css is a lightweight, flexible CSS framework that focus on mobile.
好记性不如烂笔头。
Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。
ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。
Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。
Thank God It's Friday! 感谢老天,总算到星期五啦!
Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。
PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。
Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。
让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
新手上路,请谨慎驾驶!
又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。
Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
沉迷游戏伤身,强撸灰飞烟灭。
Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。
C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。
思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。
融合块、大纲和双向链接,重构你的思维。
微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。
GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。
一些有用的避坑指南。
深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。
有空闲时间是接外包好呢还是学习好呢?
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于