怎么在程序中实现对EXE文件图标的修改?(非本应用程序)(50分)

  • 主题发起人 主题发起人 zhq
  • 开始时间 开始时间
Z

zhq

Unregistered / Unconfirmed
GUEST, unregistred user!
; EXE文件的资源结构中图标部分的数据和原ico文件的
数据差别很大,怎么将EXE文件的图标修改为给定的图
标文件呢?EXE文件的资源结构中ResID和 ResName的
对应关系怎么获取?
Delphi中提供了TReasourceStream类,具体怎么使用?
API中有UpdateResource函数,各个参数应该怎么设置?
 
Hehe,
请您参考Delphi自带的例子程序Resxplor

API:
BOOL UpdateResource(
HANDLE hUpdate, // 用BeginUpdateResource获得的Handle
LPCTSTR lpType, // 资源类型名称(例如 RT_ICON, RT_ANIICON, 等)
LPCTSTR lpName, // 需要修改的资源的名称
WORD wLanguage, // 资源的语言类型, 可以使用MAKELANGID构造
LPVOID lpData, // 存放资源的二进制数据的地址
DWORD cbData // 用字节描述的数据的长度
);

还需要参考
BeginUpdateResource,
EndUpdateResource,
LoadIcon,
LoadString,
LockResource,
MAKEINTRESOURCE,
MAKELANGID,
SizeofResource
进一步了解这个API的使用以及一些特性
 
注意: API中的UpdateResource只能在Windows NT中使用, Win95中不可用
 
hehe.very easy.拿分吧

其实非常简单拉。只要把.ico的头去掉
然后替换掉原来程序中的icon资源就行了
,或者干脆就把整个.ico替换到里面。
(当然如果新.ico的个头比较大就需要重组
资源了,你需要的话可以跟我email联系)
当然你要找到icon资源的正确位置。
看看/demo/Resxplor/中的程序就知道了。
 
thx liuws.pegasus and huizhang.
分怎么分啊?
我先把分给liuws了。以后在报答各位。
 
后退
顶部