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

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

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

要点:

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大尺寸图标)” 的相关文章

Mac OS :安装老旧的 Java SE 6 运行环境

问题描述: 某个旧app 需要安装旧 Java SE 6 运行环境 解决办法: 从下面的链接下载javaforosx.dmg并安装,然后再执行上面出错的app,问题就可以解决了。 https://support.apple.com/kb/DL1572?viewlocale=zh_CN&loc...

Xcode:如何在plist中换行

参考资料:http://91r.net/ask/2035567.html 问题: 如何在plist中换行,尝试在末尾加入\n发现无效 解决办法: 1、自编代码将"\n"替换为"\\n" NSString *newString = [oldString stri...

再谈Proteus无法放置元件的解决方法

再谈Proteus无法放置元件的解决方法

前面已经写过一篇关于Proteus7.6 SP4无法放置元件的解决办法,当时是用“解决pwi退出问题.rar”里面的文件覆盖解决的,而且覆盖后也确实可用。 然而好景不长,今天再次用Proteus7.6的时候,发现又不能放置元件了…… 归根结底还是日期的...

Excel引用单元格地址的方法

单元格本身有两种表示方式: 1、列用字母,行用数字 例如:A1表示第一行第一列,A2表示第二行第一列 2、R表示行,C表示列 例如:R1C1就表示1行1列,R5C8就表示第5行第8列。 Excel单元格地址引用有两大方式:相对引用和绝对引用。 (1) 对于第一种单元格表示方式(A1) 其相对引用和绝...

Google地图测距

Google地图测距

百度地图上有个测距功能,还是挺好用的。但百度地图有个缺点,没法看国外的东西,国外地图只显示了国家和首都,信息太匮乏了。 今天要测量欧洲两个城市的直线距离,百度不好使了,Google上默认又没有测距功能,搜了半天,找到了方法。 步骤如下: 1、在浏览器中输入http://ditu.google.cn/...

C#实现重启应用程序

推荐使用: Application.Restart();...

发表评论

访客

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