




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
delphi 动态修改exe文件的图标 unit ICOEXE;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ComCtrls, shellapi;typeTForm1 = class(TForm)Label1:TLabel;Edit1:TEdit;Label2:TLabel;Edit2:TEdit;Button1:TButton;Button2:TButton;OpenDialog1:TOpenDialog;OpenDialog2:TOpenDialog;StatusBar1:TStatusBar;procedure Button2Click(Sender:TObject);procedure Button1Click(Sender:TObject);private Private declarations public Public declarations end;varForm1:TForm1;implementation$R *.dfmprocedure TForm1.Button2Click(Sender:TObject);beginClose;end;procedure TForm1.Button1Click(Sender:TObject);constreadlen = 10; /每次读取字节数,可改变icolen = 766; /32*32图标长度,根据研究前126为图标头,后640为图标数据vari, j, itemp, nPos:int64; / nPos为目的图标在目的文件的位置ci, cj:array0.readlen - 1 of char;SourceFile, DestFile:string; /如果要把记事本图标换成瑞星杀毒软件图标bOK:boolean; /则SourceFile=C:windowsnotepad.exe,DestFile:=C:Program Filesrisingravravmon.exeSourceIcon, DestIcon:TIcon;SIconStream, s, sDest:TMemoryStream;beginbOK := false;if OpenDialog1.Execute thenSourceFile := OpenDialog1.FileNameelseexit;if AnsiUpperCase(ExtractFileExt(SourceFile) .EXE thenbeginShowMessage(AnsiUpperCase(ExtractFileExt(SourceFile);exit;end;Edit1.Text := SourceFile;if OpenDialog2.Execute thenDestFile := OpenDialog2.FileNameelseexit;if AnsiUpperCase(ExtractFileExt(DestFile) .EXE thenexit;Edit2.Text := DestFile;SourceIcon := TIcon.Create;case ExtractIcon(handle, PChar(SourceFile), UINT(-1) of0:begin ShowMessage(源程序没有图标);exit;end;1:;elseShowMessage(源程序有多个图标,本程序选择第一个图标);end;SourceIcon.Handle := ExtractIcon(handle, PChar(SourceFile), 0);/选择第一个图标DestIcon := TIcon.Create;/选择第N个图标为 ExtractIcon(handle,PChar(Sourcefile), N - 1)case ExtractIcon(handle, PChar(DestFile), UINT(-1) of0:begin ShowMessage(目的程序没有图标);exit;end;1:;elseShowMessage(目的程序有多个图标,本程序选择第一个图标替换);end;DestIcon.Handle := ExtractIcon(handle, PChar(DestFile), 0); /选择第一个图标SIconStream := TMemoryStream.Create;DestIcon.SaveToStream(sIconStream);if sIconStream.size icolen thenShowMessage(SIcon.sizeicolen);SDest := TMemoryStream.Create;sDest.LoadFromFile(DestFile);i := 0;j := 0; /以下程序查找目的图标在目的程序中的位置while i sDest.size dobeginitemp := i;j := 126; repeatSDest.Position:=i;sDest.read(ci,Readlen);SiconStream.Position:=j;SIconStream.Read(cj,Readlen);i:=i+Readlen;j:=j+Readlen;until (String(ci)=String(cj) and (isDest.size) and (jicolen); ci := ;cj := ;while (string(ci) = string(cj) and (i SDest.size) and (j icolen) dobegini := i + readlen;j := j + readlen;SDest.Position := i;SDest.read(ci, readlen);SiconStream.Position := j;SiconStream.Read(cj, readlen);end;if j sDest.Position + 640 then /将目的程序剩余数据拷入beginsDest.Position := sDest.Position + 640;s.CopyFrom(sDest, sDest.Size - sDest.Position);end;s.SaveToFile(Extractfilepath(application.exename) + Result.exe);SourceIcon.Free;DestIcon.Free; /改造好的程序存放在本目录Result.exe文件中SIconStream.Fre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 理财公司理财协议书
- 公司蜡裂解及重合装置操作工设备安全技术规程
- 业务知识培训心得简短课件
- 非争议协议书
- 公司人造板制胶工工艺技术规程
- 安徽省宣城市宣州区水阳中学2026届数学八上期末检测试题含解析
- 2025合同范本特许经营授权合同书示例
- 全面质量管理精髓
- 2025年国有企业租赁合同范本
- 专科知识培训-妇产科课件
- 生产主管转正工作总结
- 2025至2030中国高纯铝行业发展趋势与行业发展研究与产业战略规划分析评估报告
- 西藏介绍课件
- 会务理论考试题及答案
- 2025年期货从业资格之《期货法律法规》真题附答案详解【巩固】
- 幼儿园各项安全管理制度汇编
- 2025年“安全生产年”工作总结(2篇)
- GB/T 2481.1-2025固结磨具用磨料粒度组成的检测和标记第1部分:粗磨粒F4~F220
- 2025-2026秋学生国旗下演讲稿:第4周涵养文明习惯点亮成长底色-养成教育
- 配电电缆故障定位试卷与答案
- 锦囊工程(修订版)
评论
0/150
提交评论