delphi制作资源文件(二)一个A.exe释放出B.exe 并且修改b.exe变量的值
2016-06-25 23:49
671 查看
首先,创建一个工程
edit1.txt:=XXXXX
xxxxx 就是我们A.exe程序需要修改的值,写成XXXXX 是便于我们好查找它的位置。
打卡,winhex.exe 查找资源文件 的XXXX 位置
地址在 0004DD8C 转换成10 进制就是318844 (这个很关键,记下来)
在工程目录下创建两个文件,
然后运行bat文件 会生成一个AAA.res
我们开始新建一个工程来释放资源文件
添加一下代码
var
Form1: TForm1;
const OFFSET_DUANKOU = 318844;//这个就根据你自己的值来定。
implementation
{$R *.dfm}
{$R AAA.res}
procedure TForm1.Button1Click(Sender: TObject);
var
WriteBuff, ziyuanzhizhen: PChar;
ziyuanweizhi: HRSRC;
ziyuandaxiao, BytesWritten: Longword;
shujuchulijubing: THandle;
shenqingzhizhen: THandle;
duankou:string;
//现在我们开始begin
BEGIN
duankou:=trim(Edit1.Text); //端口为edit4的文字
ziyuanweizhi := FindResource(HInstance, 'AAA', RT_RCDATA); //资源指针为寻找到的资源'fuwuduan'(就是我先说的标识符)
ziyuandaxiao := SizeofResource(HInstance, ziyuanweizhi);//资源大小
shujuchulijubing := LoadResource(HInstance, ziyuanweizhi); //数据处理句炳
ziyuanzhizhen := LockResource(shujuchulijubing);//资源指针
shenqingzhizhen := CreateFile(pchar('test.exe'), GENERIC_WRITE, FILE_SHARE_WRITE, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
WriteFile(shenqingzhizhen, ziyuanzhizhen^, ziyuandaxiao, BytesWritten, nil);//写文件
Sleep(100);
SetFilePointer(shenqingzhizhen, OFFSET_DUANKOU, nil, FILE_BEGIN);//重定位指针
WriteBuff := PChar(duankou + StringOfChar(#0, 5 - Length(duankou)));//要写的数据
WriteFile(shenqingzhizhen, WriteBuff^, 5, BytesWritten, nil);//再次修改文件
CloseHandle(shenqingzhizhen);//关闭资源
end;
并且将AAA.res 文件放在释放资源工程下
运行结果
以上来源于网络
源码下载
edit1.txt:=XXXXX
xxxxx 就是我们A.exe程序需要修改的值,写成XXXXX 是便于我们好查找它的位置。
打卡,winhex.exe 查找资源文件 的XXXX 位置
地址在 0004DD8C 转换成10 进制就是318844 (这个很关键,记下来)
在工程目录下创建两个文件,
然后运行bat文件 会生成一个AAA.res
我们开始新建一个工程来释放资源文件
添加一下代码
var
Form1: TForm1;
const OFFSET_DUANKOU = 318844;//这个就根据你自己的值来定。
implementation
{$R *.dfm}
{$R AAA.res}
procedure TForm1.Button1Click(Sender: TObject);
var
WriteBuff, ziyuanzhizhen: PChar;
ziyuanweizhi: HRSRC;
ziyuandaxiao, BytesWritten: Longword;
shujuchulijubing: THandle;
shenqingzhizhen: THandle;
duankou:string;
//现在我们开始begin
BEGIN
duankou:=trim(Edit1.Text); //端口为edit4的文字
ziyuanweizhi := FindResource(HInstance, 'AAA', RT_RCDATA); //资源指针为寻找到的资源'fuwuduan'(就是我先说的标识符)
ziyuandaxiao := SizeofResource(HInstance, ziyuanweizhi);//资源大小
shujuchulijubing := LoadResource(HInstance, ziyuanweizhi); //数据处理句炳
ziyuanzhizhen := LockResource(shujuchulijubing);//资源指针
shenqingzhizhen := CreateFile(pchar('test.exe'), GENERIC_WRITE, FILE_SHARE_WRITE, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
WriteFile(shenqingzhizhen, ziyuanzhizhen^, ziyuandaxiao, BytesWritten, nil);//写文件
Sleep(100);
SetFilePointer(shenqingzhizhen, OFFSET_DUANKOU, nil, FILE_BEGIN);//重定位指针
WriteBuff := PChar(duankou + StringOfChar(#0, 5 - Length(duankou)));//要写的数据
WriteFile(shenqingzhizhen, WriteBuff^, 5, BytesWritten, nil);//再次修改文件
CloseHandle(shenqingzhizhen);//关闭资源
end;
并且将AAA.res 文件放在释放资源工程下
运行结果
以上来源于网络
源码下载
相关文章推荐
- Delphi实现http发送xml文件片段
- Delphi实现毫秒级别的倒计时实例代码
- Delphi7中Listview的常用功能汇总
- 插件管理框架 for Delphi(一)
- delphi中一个值得大家来考虑的DLL问题
- Delphi实现检测并枚举系统安装的打印机的方法
- delphi 正弦曲线图
- Delphi下OpenGL2d绘图之画四边形的方法
- Delphi实现木马文件传输代码实例
- delphi建立、读取、存贮INI文件的方法《三》
- Delphi控件ListView的属性及使用方法详解
- delphi制作wav文件的方法
- Delphi下OpenGL2d绘图之画点的方法
- Delphi下OpenGL2d绘图之初始化流程详解
- Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法
- Delphi实现截屏存盘的方法
- Delphi实现碰撞球体完整实例代码
- delphi建立、读取、存贮INI文件的方法《二》
- Delphi解析FTP地址的方法
- Delphi实现读取系统时间与日期完整实例