以编程方式更改可执行文件的图标

以编程方式更改可执行文件的图标,第1张

概述以编程方式更改可执行文件的图标

我正在开发一个名为Weatherbar的应用程序。 它的主要function是基于与windows 7任务栏的交互 – 它根据特定位置的天气情况更改图标。

我在应用程序中使用的图标都存储在一个已编译的本地资源文件 (.res)中 – 我正在使用它而不是仅用于图标的embedded式资源清单。 默认情况下,我修改主窗体的图标属性来相应地更改图标,只要图标没有固定到任务栏上,它就可以正常工作。 固定后,任务栏中的图标会自动切换到可执行文件的缺省值(资源文件中索引为0)。

在做了一点研究之后,我发现改变图标的​​一种方法是更改​​快捷方式图标(因为所有固定的应用程序实际上都是存储在用户文件夹中的快捷方式)。 但它没有工作。

我假设我需要更改可执行文件的图标,因此使用UpdateResource ,但我不完全确定这一点。 我的可执行文件没有数字签名,所以不应该是修改它的问题。

图标分辨率:像素与DPI

没有显示的Tortoisehg图标

如何让我的Inno Setup自定义图标在windows中一致显示,就像它在未包含在windows中的程序一样?

在WPF应用程序的windows任务栏中显示大小错误的图标

Qt对话框没有窗口图标(系统菜单)

什么是解决这个问题的方法?

如何检查windows图标文件的图像质量

适用于windows 8安装程序的图标

windows API:将文件typesX的图标分配给我的文件

如何用Python中的大写字母图像生成高质量的windows图标?

添加到ImageList后,我需要摧毁图标吗?

如果您想以编程方式执行此 *** 作,我将首先查看便携式可执行文件格式 ( 维基百科条目 )。 资源部分(.rsrc,见6.9节)应该包含图标。 使用这些信息,你可以编写一个工具来修改图标。

如果您只想快速更改现有文件中的图标,则可以在Visual Studio资源编辑器中对其进行修改。 我通过删除旧图标并添加一个新的文件来测试这个文件。 .exe图标在资源管理器中更改为新图标,当我将其拖到那里时,开始菜单上出现了新图标。

– 编辑 –

是的,我同意使用UpdateResource是一个好方法。 下面是一个使用C ++函数的例子 ,以及一个用于UpdateResource和FindResource的P / Invoke签名。

private voID button1_Click(object sender,EventArgs e) { String path = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); String name = "test"; Shell32.Shell shl = new Shell32.ShellClass(); // Optional code to create the shortcut System.IO.StreamWriter sw = new System.IO.StreamWriter(path + @"" + name + ".lnk",false); sw.Close(); // End optional code Shell32.Folder dir = shl.nameSpace(path); Shell32.FolderItem itm = dir.Items().Item(name + ".lnk"); Shell32.ShelllinkObject lnk = (Shell32.ShelllinkObject)itm.Getlink; // Optional code to create the shortcut lnk.Path = Environment.GetFolderPath(Environment.SpecialFolder.System) + @"notepad.exe"; lnk.Description = "noBUGz was here"; lnk.Arguments = @"c:sample.txt"; lnk.WorkingDirectory = @"c:"; // End optional code lnk.SetIconLocation(Environment.GetFolderPath(Environment.SpecialFolder.System) + "cmd.exe",1); lnk.Save(null); }

这是从http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/9e23a82c-8bed-4b96-8b9a-4c2b6136a622/

这可能有帮助。

我决定实施一个解决方法 – 该图标将在窗口的缩略图中更改(可能在windows 7中)。 如果图标被取消固定,用户可以看到图标正在改变。 如果固定,缩略图将根据当前的天气情况而改变。

在我看来,像固定图标(实际上是一个快捷方式)的结构不允许动态图标更改。 如果我错了,我愿意就此发表意见和想法。

总结

以上是内存溢出为你收集整理的以编程方式更改可执行文件的图标全部内容,希望文章能够帮你解决以编程方式更改可执行文件的图标所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1274117.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存