如何修改图标ocx的图标

专业的QQ下载站 本站非腾讯QQ官方网站
官方网址:
exe图标更改器(ExeIco)1.0绿色版
软件大小:251KB
软件语言:中文
更新时间:
软件类别:免费/图标工具
软件性质:PC软件
软件厂商:
运行环境:WinAll
软件等级:
本类热门软件
软件简介软件截图相关软件相关文章
Pixel Art是个像素图片绘制工具,使用方法非常简单,几分钟就可以做出一张像素图,在保存之前还可以看到最终预览图。
像素艺术(Pixel Art)是一种形式的数码艺术 ,像素(pixel)是组成电脑数位影像(位图)的最小单
更新:13-11-26&&大小:3.8M&&类别:图像处理
评分:10.0
图片大小编辑器图片大小编辑器\cresizer.exe图片大小编辑器\resizer.exe
经常用电脑办公的朋友会不会遇到这种情况:手头有一张很大很大的高清图片,可是老板需要的却很小。。。
这款图片尺寸修改器修
更新:13-05-17&&大小:494KB&&类别:图像处理
一、功能: 1、自定义隐藏相应的按钮 2、自由选择显示当天在线时长和农历 3、可选择精简面板 4、添加纯真IP升级快捷按钮 5、添加与陌生人聊天按钮 6、一键锁定面板& 二、适用范围: 适用的原版QQ皮肤
更新:13-05-09&&大小:404KB&&类别:QQ相关
微软已经正式发布nternet explorer 10 for windows 7,这一版本让windows 7用户等待了好久。之前ie10一直仅在windows 8上才可以使用,而在windows 7中只有预览版提供。
简体中文版在线安装包数字签名:日
更新:13-02-27&&大小:11.0M&&类别:常用软件
终极QQ图标点亮辅助工具是一款专门针对QQ用户点亮QQ图标的辅助软件,为用户提供简便快捷的图标点亮指引。
可以帮助您快速点亮腾讯QQ业务图标,简单易用,绿色无毒无插件。目前支持37个图标点亮,未来还将升级更多。
更新:12-08-30&&大小:1.2M&&类别:QQ相关
QQ宠物已经发布很长时间了,可是许多囊中羞涩的朋友还是没有能够获得宠物。其实我们还是可以免费得到这些可爱的QQ宠物的。没有宠物的QQ用户可以通过2种途径来免费获得。
  一、每周Q宠
  这个每周宠的意思是
QQ炫舞图标又出新玩法,可以进行升级啦,一共有5个等级哦。大家再也不用烦恼我的图标跟所有人的都一样了,您可以在炫舞中达到不同的等级,然后获得新的图标,来充分展示出你的个性,秀出你的特权。
QQ炫舞图标点亮
什么时候可以点亮图标?
  日起,您可以开始爱墙图标点亮。
  我该如何点亮图标?
  第一步:购买爱墙字条背景,成功发表1张爱墙字条。
  第二步:找到一位已经点亮爱墙图标的用户,让他/她
 超级QQ的网站上公布了将要进行的活动,免费点亮爱墙图标也是活动内容之一。预计QQ下一个版本出来的时候,会在这个版本上增加一个新图标,正是QQ爱墙图标!看来爱墙图标已经离我们很近了。
  “爱墙”是一个分享
QQ音信官方现已开放音信用户间相互传递点亮音信图标活动。
  QQ音信点亮图标网址
  QQ音信介绍:
  QQ音信能够实现通过互联网将自己想要说的内容输入一个网页,然后向对方的电话或手机发送通话请求,对方
图标修改器
厌倦了一成不变的桌面图标吗不如来试试图标修改器吧图标修改器的作用在于帮你改变图标的外观,让你自由定制个性化图标,使你的电脑桌面焕然一新,图标修改器可以帮你自有修改文件夹图标,另外还支持图标修改硬盘图标
如意图标专家是一款免费好用的exe图标修改器,这款图标修改器绿色小巧、简便易用,它可
修改硬盘图标工具是一款绿色小巧的硬盘图标修改器,这款工具可以帮助你一键修改硬盘图
文件夹样式太单调,不易分辨,可以使用文件夹图标修改助手修改电脑上任意文件夹图标,
人人磁盘图标修改工具原理是利用API函数实现磁盘图标的设置。人人磁盘
系统硬盘的图标看久了当然也看腻了,如果说想美化一下改变一下图标而
U盘个性化助手是一款非常不错的U盘个性化工具,它可以帮助你制作个性化U盘,比如改变U
exe图标更改器 1.0绿色版
其他版本下载
相信很多人都听说过格式工厂吧,今天小编为中国最流行的图片软件――美图秀秀是一款很燕秀工具箱2015是一款AutoCAD外挂工具箱,支AutoCAD2015官方完整版全新升级,软件硬件加AutoCAD2014是由Autodesk公司近年重磅打造的AutoCAD2011是目前全球最专业的一款计算机绘AutoCAD2010免费版是由Autodesk公司官方打造AutoCAD 2009是一款专业的计算机绘图软件,AutoCAD2000中文破解免费版应该算是AutoCADIcoFX 是一款免费的图标编辑工具,让您轻松
本类月下载排行
12345678910您还可以使用以下方式登录
当前位置:&>&&>& > ResHacker怎么替换图标
reshacker修改图标 ResHacker怎么替换图标
&  ResHacker怎么替换图标& & & & 你想自定义应用软件吗?
例如:更改字体,更改菜单,更改对话框的排列,等等。但你会认为这是不可能的,因为你没有资源文件。ResHacker能在没有资源文件的情况下分析,显示不同的信息,重写可执行文件的资源,包括(EXE,DLL,OCX)等。是方便强大的汉化工具,可以直接修改用
VC++ 及 DELPHI 编制的程序的资源,包括菜单、对话框、字串表等。  ResHacker替换图标  1. 首先先下载ResHacker,然后打开&ResHacker.exe&(程序)  2. 点击菜单栏上的&文件(F)&, 选择第一项&打开(O)& 然后就显示,选择你要编辑的dll文件(此教程dtu就以 imageres.dll
来做示范)  3. 选中你要编辑的dll文件,然后点击&打开(O)&  4. 现在就要开始对你选中的dll文件进行编辑了  5. 点击对应&图标组&的那个小小的 &+& 符号,就会拉开子目录,里面有几个图标就会显示几个文件夹
欢迎转载:
推荐:    Windows(95)
通过代码实现EXE文件图标的替换
  最近,好多人问我如何通过写个小程序,动态替换可执行文件的图标。这个问题看起来虽小,但却涉及到很多问题。网上也只能找到一些零零散散的资料,却没有详细的指导性文档。所以我决定把这个问题写下来,以方便大家查阅。
  EXE文件图标的替换有很多方法,例如用一个EXE文件的图标替换另外一个EXE文件的图标;用一个ICO文件内的图标替换EXE文件的图标。这两种情况替换的方法不太相同,下面会详细讨论。
  EXE文件图标的替换更一般的情形,是PE(Portable Executable)文件图标的替换。只不过Windows操作系统只会显示EXE文件的图标罢了。但DLL、OCX等PE文件也都可以包含图标资源。下面我们从ICO文件格式说起,一步步讲解替换EXE文件图标的方法和原理。
.ico文件中图标的保存格式
  对于一个扩展名是.ico的文件,大部分人会认为一个ICO文件里面只能包含一个图标。但事实上,一个ICO文件里面可以包含很多图标。而且,目前大部分ICO文件里面都包含有不同尺寸、不同色深的好几个图标。我们以MSN安装包里的msnmsn.ico为例,这个图标文件就包含了9个不同尺寸、不同色深的图标,如图所示:
  这样做的目的,是为了保证不同的操作系统、不同的桌面色深,图标显示均可达到最佳效果。操作系统会选择并显示一个最合适的图标。Windows XP支持32位色的图标,Windows 2000最多只支持256色的图标。所以,如果我们开发的软件若要同时支持Windows XP和2000,那么为了达到视觉上的最佳效果,每一个ICO文件应至少包含两个图标,一个是32位色的,一个是256色的。 ICO文件头部结构定义如下:
typedef struct
// Reserved (must be 0)
// Resource Type (1 for icons)
// How many images?
ICONDIRENTRY
idEntries[1]; // An entry for each image (idCount of 'em)
} ICONDIR, *LPICONDIR;
idCount表示该ICO文件包含图标的数量,所以理论上,一个ICO文件最多可以包含65535个图标。接下来,是该文件所包含的每一个图标的描述。
typedef struct
// Width, in pixels, of the image
// Height, in pixels, of the image
// Number of colors in image (0 if &=8bpp)
// Reserved ( must be 0)
// Color Planes
// Bits per pixel
dwBytesInR
// How many bytes in this resource?
// Where in the file is this image?
} ICONDIRENTRY, *LPICONDIRENTRY;
ICONDIRENTRY中记录了每一个图标的尺寸、色深、图标资源占用的字节数。dwImageOffset是一个文件偏移地址,指向图标资源数据起始位置。至于每一个图标资源内部的具体格式,与本文关系不大,这里就不再详细介绍了。
PE文件中的图标保存格式
  PE文件中的图标保存格式与.ico文件中图标的保存格式略有不同。PE文件中,把ICONDIR和图标资源作为两种资源类型分别保存,前者是RT_GROUP_ICON类型,后者是RT_ICON类型。为了与.ico文件中图标的保存格式做以区分,我们把PE文件中的图标保存格式重新定义如下:
// #pragmas are used here to insure that the structure's
// packing in memory matches the packing of the EXE or DLL.
#pragma pack( push )
#pragma pack( 2 )
typedef struct
// Reserved (must be 0)
// Resource type (1 for icons)
// How many images?
GRPICONDIRENTRY
idEntries[1]; // The entries for each image
} GRPICONDIR, *LPGRPICONDIR;
typedef struct
// Width, in pixels, of the image
// Height, in pixels, of the image
// Number of colors in image (0 if &=8bpp)
// Reserved
// Color Planes
// Bits per pixel
dwBytesInR
// how many bytes in this resource?
} GRPICONDIRENTRY, *LPGRPICONDIRENTRY;
#pragma pack( pop )
这里有一个区别,就是在.ico文件中,ICONDIRENTRY结构最后一个成员dwImageOffset表示的是图标资源文件偏移地址。而PE文件中,GRPICONDIRENTRY结构最后一个成员nID表示的是图标的索引ID。
Windows API
  Windows操作系统为我们提供了几个API函数,用来更新PE文件中资源的函数有:BeginUpdateResource, UpdateResource, EndUpdateResource。用来枚举PE文件中资源的函数有:EnumResourceTypes,EnumResourceNames,EnumResourceLanguages。具体的使用方法可以参见MSDN。
下面我们通过具体的例子,来验证上面的方案是否可行。
用一个EXE中的图标替换另外一个EXE文件的图标
在这个例子中,我们用Windows XP自带的记事本的图标替换计算器的图标。
图2 记事本图标
图3 计算器图标
下面代码演示了如何替换32x32 32bits的图标:
HMODULE hModule = ::LoadLibrary(&notepad.exe&);
HRSRC hResInfo = ::FindResource(hModule, MAKEINTRESOURCE(8), RT_ICON);
HGLOBAL hGlobal = ::LoadResource(hModule, hResInfo);
DWORD dwSize = ::SizeofResource(hModule, hResInfo);
void* pData = ::LockResource(hGlobal);
HANDLE hUpdate = ::BeginUpdateResource(&calc.exe&, FALSE);
VERIFY(::UpdateResource(hUpdate, RT_ICON, MAKEINTRESOURCE(7),
MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT),
pData, dwSize));
VERIFY(::EndUpdateResource(hUpdate, FALSE));
VERIFY(::FreeLibrary(hModule));
大家肯定有个疑问,上面代MAKEINTRESOURCE(8)和MAKEINTRESOURCE(7)是怎么来的呢?其实索引8和7分别是notepad.exe和calc.exe中,32x32
32bits图标的索引。我们可以通过加载RT_GROUP_ICON资源,然后遍历GRPICONDIRENTRY中每一个图标的大小、色深,找到这个图标的索引。为了简便,这里直接写死的索引号,省略了这一动态查找的过程。
还有一个疑问应该就MAKELANGID(LANG_ENGLISH,&SUBLANG_DEFAULT)了。PE文件中,每一个资源都至少对应一种语言。因为我的操作系统是英文的,所以记事本和计算器中的图标资源语言也是英文的。对于简体中文Windows
XP操作系统所自带的记事本和计算器,这个值应该是MAKELANGID(LANG_CHINESE,SUBLANG_SYS_DEFAULT)。
那么我们怎么才能知道一个PE文件中,图标资源的语言是什么呢?我们可以通过资源枚举API,枚举所有图标、语言。可以参考上面提到过的那几个API函数,并查阅MSDN获取这些函数的帮助文档。 我们用记事本32x32 32bits图标替换计算器同样尺寸、色深的图标后,效果如下,在Titles显示方式下,图标大小是48x48的,图标没有被改变:
图4 48x48图标
在Icons显示方式下,图标大小是32x32的,图标被我们改变了:
图5 32x32图标
用一个ICO文件中的图标替换另外一个EXE文件的图标
  用ICO文件中的图标替换EXE文件图标稍微有点麻烦,我们必须借助数据结构ICONDIR和ICONDIRENTRY来完成。我们使用msnms.ico中的32x32 32bits图标替换计算器中同样大小色深的图标:DWORD dwSize = sizeof(ICONDIRENTRY);
HANDLE hFile = ::CreateFile(&msnms.ico&, GENERIC_READ, FILE_SHARE_READ,
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
::SetFilePointer(hFile, sizeof(ICONDIR) + dwSize * 6, NULL, FILE_BEGIN);
DWORD dwRead = 0;
ICONDIRENTRY E
VERIFY(::ReadFile(hFile, &Entry, dwSize, &dwRead, NULL));
::SetFilePointer(hFile, Entry.dwImageOffset, NULL, FILE_BEGIN);
void* pData = new char[Entry.dwImageOffset];
VERIFY(::ReadFile(hFile, pData, Entry.dwBytesInRes, &dwRead, NULL));
HANDLE hUpdate = ::BeginUpdateResource(&calc.exe&, FALSE);
VERIFY(::UpdateResource(hUpdate, RT_ICON, MAKEINTRESOURCE(7),
MAKELANGID(LANG_ENGLISH, SUBLANG_DEFAULT),
pData, Entry.dwBytesInRes));
VERIFY(::EndUpdateResource(hUpdate, FALSE));
delete[] pD
pData = NULL;
VERIFY(::CloseHandle(hFile));
上面代码中sizeof(ICONDIR) + dwSize * 6的意思是定位到第8个标结构体ICONDIRENTRY的位置,这个图标是32x32 32bits的。我们可以通过遍历每一个ICONDIRENTRY来判断,到底哪个图标是这个尺寸的。这里我们为了简便,把这部分代码省略了。
  定位到第8个图标结构体ICONDIRENTRY的位置后,Entry.dwImageOffset的值就是第8个图标资源的文件偏移地址,Entry.dwBytesInRes的值是第8个图标图标资源的大小。然后我们将文件指针定位到Entry.dwImageOffset,并读取Entry.dwBytesInRes大小的数据到指针pData指向的内存当中。 最后,是替换文件图标资源的代码,这部分代码跟上一个例子是相同的。
  本文抛砖引玉,介绍了EXE文件图标的替换,但完全可以推广到所有PE文件图标的替换(包括EXE、DLL等),也可推广到所有PE文件资源的替换(包括图标、图片、文字资源、对话框模板、菜单等)。可供相关人员参考。
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:564293次
积分:7182
积分:7182
排名:第2766名
原创:183篇
转载:176篇
评论:88条

我要回帖

更多关于 ocx文件修改 的文章

 

随机推荐