抽取exe和dll程序图标

从文件中抽取图标,我们可以选择使用ExtractIcon()或ExtractIconEx(),以及ExtractAssociatedIcon(),LoadImage()和SHGetFileInfo()。下面我们比较和对照一下这些函数的能力:函数描述ExtractIcon()从一个文件中抽取指定索引位置的图标,索引从0开始。这个函数总是返回大图标(32×32)。ExtractIconEx()与ExtractIcon()相同,但是可以抽取大图标(32×32)和小图标(16×16)。ExtractAssociatedIcon()返回与给定文件或路径关联的大图标(32×32)。SHGetFileInfo()返回给定文件,路经或PIDL的大/小图标,也可以应用于某些图形效果。LoadImage()从给定文件中抽取期望分辨率的图标,这时唯一能取得48X48图标的方法。LoadIcon()从给定可执行文件的资源中抽取图标,源文件由实例标识,不是由文件名标识,图标由ID标识不是由索引标识。以上函数都提供了抽取程序图标的功能,但哪种方法最好呢?1、如果我们只抽取大图标,也就是32×32的图标,我们推荐使用ExtractIcon()函数。2、如果我们同时需要抽取大图标和小图标,绝对推荐使用ExtractIconEx()函数。3、如果我们需要抽取48×48这样的超大图标,那么只能使用LoadImage()函数。4、如果我们想获取Shell所关联的文件对象(驱动器,文件夹,打印机,普通文件等)的图标时,使用SHGetFileInfo()函数。以下我们使用ExtractIconEx()函数详细讲解抽取图标的过程。函数原型:UINTExtractIcohEx(LPCTSTRlpszFile,intnIconIndex,HICONFAR*phIconLarge,HICONFAR*phIconSmall,UINTnIcons);参数:lpszFile:定义可获取图标的可执行文件,DLL,或者图标文件的名字的空结束字符串指针。nIconIndex:指定抽取第一个图标基于零的变址;例如,如果该值是零;函数在限定的文件中抽取第一图标;如该值是-1且phIconLarge和phIconSmall参数均为NULL,函数返回限定文件中图标的总数;如果文件是可执行文件或DLL;返回值是RT_GROUP_ICON资源的数目;如果文件是一个ICO文件,返回值是1;Windows95,WindowsNT4.0,和更高版本中,如果值为负数且phIconLarge和phIconSmall均不为NULL,函数从获取图标开始,该图标的资源标识符等于nIconIndex绝对值。例如,使用-3来获取资源标识符为3的图标。phIconLarge:指向图标句柄数组的指针,它可接收从文件获取的大图标的句柄。如果该参数是NULL没有从文件抽取大图标。phIconSmall:指向图标句柄数组的指针,它可接收从文件获取的小图标的句柄。如果该参数是NULL,没有从文件抽取小图标。nIcons:指定要从文件中抽取图标的数目。返回值:如果nIconIndex参数是-1,PhIconLarge和PhIconSmall参数是NULL,返回值是包含在指定文件中的图标数目;否则,返回值是成功地从文件中获取图标的数目。备注:必须调用DestroyIcon函数来清除由ExtractIconEx函数返回的图标。为恢复大小图标尺寸,可使用SM_CXICON,SM_CYICON,SM_CXSMICON,SM_CYSMICON标记来调用GetSystemMetrics函数。

.CodeEntity .code_pieces ul.piece_anchor{width:25px;position:absolute;top:25px;left:-30px;z-index:1000;}.CodeEntity .code_pieces ul.piece_anchor li{width:25px;background: #efe;margin-bottom:2px;}.CodeEntity .code_pieces ul.piece_anchor li{border-left:3px #40AA63 solid;border-right:3px #efe solid;}.CodeEntity .code_pieces ul.piece_anchor li:hover{border-right:3px #40AA63 solid;border-left:3px #efe solid;}.CodeEntity .code_pieces ul.piece_anchor li a{color: #333;padding: 3px 10px;}.CodeEntity .code_pieces .jump_to_code{visibility:hidden;position:relative;}.CodeEntity .code_pieces .code_piece:hover .jump_to_code{visibility:visible;}.CodeEntity .code_pieces .code_piece:hover .jump_to_code a{text-decoration:none;}.CodeEntity .code_pieces h2 i{float:right;font-style:normal;font-weight:normal;}.CodeEntity .code_pieces h2 i a{font-size:9pt;background: #FFFFFF;color:#00A;padding: 2px 5px;text-decoration:none;}

相关文章:

你感兴趣的文章:

标签云: