




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-湖南-湖南房管员二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖南-湖南动物检疫员二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北经济岗位工三级(高级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖北-湖北机械热加工二级(技师)历年参考题库含答案解析
- 创业孵化基地建设资金申请报告:2025年创业环境优化策略
- 2025年事业单位工勤技能-海南-海南医技工五级(初级工)历年参考题库含答案解析
- 保险行业数字化理赔服务与保险欺诈防范研究报告
- 2025年K2教育STEM课程实施效果评估:学生问题解决能力提升策略研究报告
- 2025年休闲农业与乡村旅游乡村旅游产业投资机会分析报告
- 2025年虚拟现实教育产品在虚拟现实心理健康教育中的应用设计与效果评估报告
- 2025高级会计师考试试题及答案
- 2025-2030中国特高压电网建设规划与设备需求分析报告
- 2026版赢在微点顶层设计大一轮物理-专题提升二十 测量电阻的其他几种方法
- 民族文化宫2025年公开招聘17人笔试模拟试题含答案详解
- 光传输业务配置课件
- 2025年幼儿园教师专业考试试题及答案书
- 机关事业单位工人汽车驾驶员高级、技师国家题库练习题及答案
- 2025年辽宁省地质勘探矿业集团有限责任公司校园招聘笔试备考题库带答案详解
- 2025年青海辅警招聘考试题及答案
- 2025新外研版初中英语八年级上全册课文原文翻译
- 2025年高处作业特种作业操作证考试试卷:高处作业特种作业操作证考试备考攻略与技巧
评论
0/150
提交评论