请问C#如何从exe文件或dll文件中提取图标?

wangtong2010 2021-04-05 12:31:25
网上找了很多,但都是提取16*16和32*32的多个图标,怎样提取各种不同尺寸的图标。比如从3dsmax.exe中能提取出下面所有图标。
...全文
1413 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Carlven2012 2021-04-17
  • 打赏
  • 举报
回复
引用 12 楼 wangtong2010 的回复:
我知道,就是这一句把各种不同尺寸的图标都转成了256*256。如果在提取图标前,能先获取它的原始尺寸就好了,按照原始尺寸提取,请问有相关方法吗?

var successCount = PrivateExtractIcons(file, 0, 256, 256, hIcons, ids, iconTotalCount, 0);
PrivateExtractIcons的最后一个参数,官方解释好像是说设置为LR_DEFAULTSIZE就是取默认尺寸(把前面的尺寸设置为0)
wangtong2010 2021-04-15
  • 打赏
  • 举报
回复
引用 14 楼 yolyry 的回复:
使用ResHacker.exe提取吧
您的意思是说使用第三方软件,自己编程无法实现?
yolyry 2021-04-14
  • 打赏
  • 举报
回复
使用ResHacker.exe提取吧
glb21 2021-04-13
  • 打赏
  • 举报
回复
用反编译或是pe工具可以提取
wangtong2010 2021-04-13
  • 打赏
  • 举报
回复
我知道,就是这一句把各种不同尺寸的图标都转成了256*256。如果在提取图标前,能先获取它的原始尺寸就好了,按照原始尺寸提取,请问有相关方法吗?

var successCount = PrivateExtractIcons(file, 0, 256, 256, hIcons, ids, iconTotalCount, 0);
Carlven2012 2021-04-10
  • 打赏
  • 举报
回复
引用 10 楼 wangtong2010 的回复:
[quote=引用 8 楼 Carlven2012 的回复:]https://blog.csdn.net/Ada62906/article/details/101711443
非常好,感谢,的确提取出来256*256的大图标。不过都是256*256的了,把小图标也都强制转化成了256*256的了,能否按照原始大小提取呢。[/quote]没研究过。 里面的范例稍加修改应该就可以了
wangtong2010 2021-04-10
  • 打赏
  • 举报
回复
引用 8 楼 Carlven2012 的回复:
https://blog.csdn.net/Ada62906/article/details/101711443
非常好,感谢,的确提取出来256*256的大图标。不过都是256*256的了,把小图标也都强制转化成了256*256的了,能否按照原始大小提取呢。
wangtong2010 2021-04-08
  • 打赏
  • 举报
回复
引用 4 楼 兔子党逍遥 的回复:
我没有你那个exe文件,你用visual studio,点击 文件->打开->文件->找到你的exe文件,单击,右下角的“打开”旁边有个下拉小三角,点击选择打开方式,选择:资源编辑器(第一个),点确定。 找到:icon,展开,你看看有几个图标 如果这里也只有16*16和32*32两个,那说明资源中只有2个,如果IconWorkShop打开,也不会有更大尺寸的。
我照着你说的方法用visual studio2019打开了3dsmax.exe文件,里边的确有96*96、128*128、256*256的大图片,但是用上边的链接是不行的。
兔子-顾问 2021-04-07
  • 打赏
  • 举报
回复
我没有你那个exe文件,你用visual studio,点击 文件->打开->文件->找到你的exe文件,单击,右下角的“打开”旁边有个下拉小三角,点击选择打开方式,选择:资源编辑器(第一个),点确定。 找到:icon,展开,你看看有几个图标 如果这里也只有16*16和32*32两个,那说明资源中只有2个,如果IconWorkShop打开,也不会有更大尺寸的。
wangtong2010 2021-04-07
  • 打赏
  • 举报
回复
引用 2 楼 兔子党逍遥 的回复:
帖子下方就有答案链接 https://blog.csdn.net/chen_zw/article/details/7900096?utm_medium=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-1.nonecase
你好,感谢您。这个链接就是我说的那个只能提取16*16和32*32的链接。
wangtong2010 2021-04-07
  • 打赏
  • 举报
回复
这个是IconWorkShop软件,它是如何提取出这么多尺寸的图标的?
兔子-顾问 2021-04-07
  • 打赏
  • 举报
回复
帖子下方就有答案链接 https://blog.csdn.net/chen_zw/article/details/7900096?utm_medium=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-1.nonecase

111,088

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧