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

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

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

要点:

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://www.xjtudll.cn/Exp/651/

标签: WinForm
分享给朋友:

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

vs2012 与 win7 不兼容的问题

vs2012 与 win7 不兼容的问题

问题描述:安装VS2012后,打开提示与此版本的 Windows 不兼容 如下图: 一开始以为是VS2010不能安装在Win7 64bit上,后来发现有个补丁,安装好之后,就能使用了。 Update for Microsoft Visual Studio 2012 (KB2781514) http...

object-c 函数前面加号和减号 +和-的区别

简单来说就是: 加号 是可以通过类名直接调用这个方法; 减号则要实例化逸个对象,然后通过实例化的对象来调用该方法!! 使用的时候请注意。...

解决android studio弹出

解决android studio弹出"waiting for debugger"

方式一: 这种方法可能需要配置环境变量 win+R -> cmd -> adb kill-server,adb start-server 方式二: 当点击debug app时(卡在"waiting for debug"),则如图点击,然后点击确定即可! 本文为转载...

Can't place multiple pins assigned to pin location Pin_101

Can't place multiple pins assigned to pin location Pin_101

错误:Error (176310): Can't place multiple pins assigned to pin location Pin_101 (IOPAD_X34_Y18_N21)     Info (176311): Pin addr[8] is as...

Protel99SE原理图全局设置

Protel99SE原理图全局设置

一说到Protel99SE的全局设置,大家肯定会想到Global功能,这个功能在PCB里使用是很简单的,但是在原理图里的使用,相信很多人就不会操作了。 举个例子来说明吧,如果我想将全部电阻的封装由RC0603(实际上就是0603,自己换个名字而已)全部改成RC0805,那么该怎么操作呢? 先任意...

iOS 获取当前正在显示的ViewController

我们在非视图类中想要随时展示一个view时,需要将被展示的view加到当前view的子视图,或用当前view presentViewController,或pushViewContrller,这些操作都需要获取当前正在显示的ViewController。 //获取当前屏幕显示的viewcont...

发表评论

访客

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