gpt4 book ai didi

c# - 为 Windows 应用程序动态设置任务栏图标

转载 作者:可可西里 更新时间:2023-11-01 13:47:00 29 4
gpt4 key购买 nike

我的公司有一个为 Windows 应用程序设置图标的品牌机制,如下所示:

if (AppBranding.Is("FOO"))
Icon = MyProject.Properties.Resources.Icon_FOO;
else
Icon = MyProject.Properties.Resources.Icon_BAR;

Icon_FOOIcon_BAR 是指向它们各自的 .ico 文件的资源。

此外,在 Project > MyProject Properties > Resources 中设置图标和 list 是在 Visual Studio 中设置的。

enter image description here

当用户启动应用程序时,会根据品牌显示正确的图标。但是,如果他们将程序固定到任务栏,图标将恢复为 Icon_FOO.ico,无论品牌如何。当他们取消固定时,图标会切换回来。

我相信固定到任务栏的程序使用 .exe 的图标,而窗口的图标是我设置的 Form.Icon 的图标。我只知道如何通过转到“项目属性”>“资源”并从下拉列表中进行选择来设置 .exe 图标,如上图所示。如何动态设置.exe的图标?

最佳答案

任务栏中的图标(通常)是程序集中第一个可用的图标资源,不能从应用程序中修改(除非您以编程方式创建自定义快捷方式)。

您可以创建一个简单的入门应用程序 (*.exe),为每个品牌版本提供正确的图标和版本属性,而不是试图操纵它? .exe 只需要从包含实际应用程序内容的程序集中加载应用程序。

所以你有

Launcher_FOO.exe
Launcher_BAR.exe

有自己的自定义图标。两个应用程序都将创建一个通用应用程序

Actual_Application.dll

启动应用程序。

您可以使用 Reflection.Emit 动态创建 Launcher_xxx.exe:

参见 google search

参见 msdn

关于c# - 为 Windows 应用程序动态设置任务栏图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21835388/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com