当前位置:首页 > 技术心得 > 正文内容

如何给程序添加超大图标(EXE大尺寸图标)

xjtudll4年前 (2022-10-01)技术心得6880

要点:

1、制作多分辨率ICON文件

2、清空图标缓存,使图标文件生效

 

自己写的程序,如果更换了图标,编译出来,超大图标显示就会发现图标并没有跟着放大。

那么问题来了,就换个图标效果就不同了,很明显时图标有问题。

用eXeScope打开vs2013编译出来的MFC对话框程序可以看到如下图:

20170308111423189

这不止一个图标,而我们替换图标之后,编译,打开发现就只有一个图标,因此可以判断的确是ico图标的问题。

在qq群里问了下其他的朋友,有朋友提示ico图标文件可以包含很多组图标,可以是一个集合。

知道这一点很重要,那么只需要重新制作一个ico图标即可。

下载安装IconWorkshop软件

打开一张图片然后点击这里,如下图:

20170308112846977

然后如下设置

20170308112932658

 

设置好之后,点击ok,然后Ctrl+S保存即可,这样ico图标集合就制作好了。

然后用这个图标替换,重新编译,刷新一下系统图标缓存,然后改变图标缩放,就可以看到效果了。

rem 关闭Windows外壳程序explorer

taskkill /f /im explorer.exe

rem 清理系统图标缓存数据库

attrib -h -s -r "%userprofile%\AppData\Local\IconCache.db"

del /f "%userprofile%\AppData\Local\IconCache.db"

attrib /s /d -h -s -r "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\*"

del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_32.db"

del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_96.db"

del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_102.db"

del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_256.db"

del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_1024.db"

del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_idx.db"

del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_sr.db"

rem 清理 系统托盘记忆的图标

echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v IconStreams

echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v PastIconsStream

rem 重启Windows外壳程序explorer

start explorer

 

复制以上内容保存到 强制刷新图标缓存.bat 双击即可刷新系统图标缓存。  

最后附一张最终效果图:

20170308113030909

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/651/

标签: WinForm
分享给朋友:

“如何给程序添加超大图标(EXE大尺寸图标)” 的相关文章

STM8L PC0 PC1无法输出高电平

STM8L PC0 PC1无法输出高电平

MCU:STM8L151K4 参考代码: PC_DDR |= BIT1; PC_CR1 |= BIT1; PC_ODR |= BIT1; 现象: 无法输出高电平,一直是低电平 原因: STM8L PC0和PC1是N沟道开漏输出,所以必须接上拉电阻才能输出高电平。 以下截图来自于STM8L151...

C#中实现VB中的CreateObject方法

经常看到有些VB的例子中直接用个CreateObject就可调用系统功能(大多是COM对象),像用户设定,网络设定等等。虽然C#中可以通过使用VB的命名空间的方法来调用CreateObject函数,但是这样比较没什么用,因为生成的对象的所带有的方法都不能使用。C#中还可以直接用添加引用的方式来调用一...

如何获取.NET Framework目录路径?

问题: 如何在C#应用程序中获取.NET Framework目录路径? 例如:“C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727” 方法: 通过使用以下方法可以获取当前.NET应用程序活动的CLR安装目录的路径: Sys...

tenx(十速)TM87系列常用宏(一)

tenx(十速)TM87系列常用宏(一) 首先,定义一些寄存器,用于存储临时变量,定义R0到R7为70H~77H,方便LCD显示。定义如下:ORG 70HR0 DN 1R1 DN 1R2 DN 1R3 DN 1R4 DN 1R5 DN 1R6 DN 1R7 DN 1由于累加器AC和状态寄存...

魅族Flyme7不显示logcat

魅族Flyme7不显示logcat

设置 -> 辅助功能 -> 开发者选项 -> Flyme扩展功能 -> 性能优化 -> 高级日志输出 -> 全部允许 没有开发者选项的先去系统设置里将开发者选项给点出来...

eclipse:android R.java文件丢失或无法更新

eclipse:android R.java文件丢失或无法更新

http://www.cnblogs.com/zdz8207/archive/2012/11/30/eclipse-android-adt-update.html 问题: eclipse编译android工程,发现R.java无法更新 解决办法: 1、先确定SDK没问题,就是说工程设置里用的SDK,...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。