C# 获取exe、dll中的图标,支持获取256x256分辨率

本文介绍了如何使用C#通过调用C++的PrivateExtractIcons函数来获取exe或dll文件中的256x256分辨率图标,即使原始资源图标尺寸小于256x256,也会返回最高分辨率的图标。注意,PrivateExtractIcons函数可能在后续Windows版本中不再支持。
摘要由CSDN通过智能技术生成

在网上找过许多文章,都没有成功获取过大图标,只能获取最大32x32。最后自己尝试了相关的windows api,终于找到一个可用的。

 

主要用到的C++的PrivateExtractIcons函数,具体说明请看:PrivateExtractIcons function

该函数原文有个说明可能需要注意一下:[This function is not intended for general use. It may be altered or unavailable in subsequent versions of Windows.]

 

 1 UINT WINAPI PrivateExtractIcons(
 2   _In_      LPCTSTR lpszFile,
 3   _In_      int     nIconIndex,
 4   _In_      int     cxIcon,
 5   _In_      int     cyIcon,
 6   _Out_opt_ HICON   *phicon,
 7   _Out_opt_ UINT    *piconid,
 8   _In_      UINT    nIcons,
 9   _In_      UINT    flags
10 );

C#使用DLL import进行引用。

 1 [DllImport("User32.dll")]
 2 public static extern int PrivateExtractIcons(
 3     string lpszFile, //文件名可以是exe,dll,ico,cur,ani,bmp
 4     int nIconIndex,  //从第几个图标开始获取
 5     int cxIcon,      //获取图标的尺寸x
 6     int cyIcon,      //获取图标的尺寸y
 7     IntPtr[] phicon, //获取到的图标指针数组
 8     int[] piconid,   //图标对应的资源编号
 9     int nIcons,      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值