如何将EXE和资源文件打包成一个EXE
来源:互联网 发布:bi数据经理面试 编辑:程序博客网 时间:2024/03/29 15:39
假定:
配置程序为set.exe
显示信息程序show.exe
配置信息文件为info.dat
声音文件sound.wav
目标:
1.在set.exe中点击某按钮,将show.exe、info.dat、sound.wav打包成一个文件xxxx.exe’。
2.show.exe’被执行后,在windows/system目录下释放出info.dat、sound.wav两个文件。
3.show.exe’读取windows/system中所需要的文件。
实现分两部分,一部分在set.exe,一部分在show.exe。
一、set.exe部分
1. 使用TFileStream打开show.exe,将文件指针移动末尾-4的位置,读出四个字节,检查这四个字节是否为“AA BB CC DD”,如果是,则代表该文件不是原始文件,提示生成失败,不往下执行;如果不是,继续第二步。
2. 提示输入要生成的程序的文件名,可以得到文件名xxxx.exe。
3. 将show.exe复制一份,文件名xxxx.exe。
4. 得到xxxx.exe的大小Size_X,得到info.dat的大小Size_D,得到sound.wav的大小Size_S。
5. 使用TFileStream打开info.dat,将所有内容读出缓冲区(动态分配一段内容)。
6. 使用TFileStream打开xxxx.exe定位到末尾,将缓冲区的内容写入后,释放缓冲区。
7. 使用TFileStream打开sound.wav,将所有内容读出缓冲区(动态分配一段内容)。
8. 将缓冲区的内容继续写入xxxx.exe,之后释放缓冲区。
9. 继续写入xxxx.exe,依次写入以下四项内容:
Size_X,Size_D,Size_S,“AA BB CC DD”。总共4+4+4+4=16个字节。
10. 完成。
二、show.exe部分
1. 启动的时候,将自己复制一份到当前目录,文件名为“show_tmp.exe”。
2. 用TFileStream打开show_tmp.exe,检查末尾四个字节是否“AA BB CC DD”,如果不是,则正常开始检测任务,不往下执行;如果是,则继续。
3. 将文件指针从末尾往前移动16个字节,然后每次读4个字节,就可以得到3个整数,这三个整数为:原show.exe的文件大小Size_X,info.dat的文件大小Size_D,sound.wav的文件大小Size_S。
4. 将文件指针移动到开头,读出Size_X个字节大小的数据(放到创建缓冲区中),然后将读出的数据,在windows/system目录里生成show.exe文件。
5. 将文件指针从开头往后移动Size_X个字节,读出Size_D个字节大小的数据(放到创建缓冲区中),然后将读出的数据,在windows/system目录里生成info.dat文件。
6. 将文件指针从开头往后移动Size_X+Size_D个字节,读出Size_S个字节大小的数据(放到创建缓冲区中),然后将读出的数据,在windows/system目录里生成sound.wav文件。完成这步,windows/system目录就有三个文件:set.exe,info.dat,sound.wav。
7. 退出程序,同时执行windows/system目录中的show.exe程序。
8. 完成。
温校宏
2010/9/9
- 如何将EXE和资源文件打包成一个EXE
- 如何将Debug文件夹下的资源打包成一个EXE文件直接执行
- 将DLL和EXE打包成一个EXE
- 如何将 exe程序和vb编译的exe文件 封装为一个exe文件
- 教你如何将EXE和DLL文件打包在一起
- 用WinRAR将exe与所依赖的dll与资源打包成一个exe
- 如何将Py文件打包为exe
- 如何将cocos2d-x项目打包成一个.exe
- 如何将cocos2d-x项目打包成一个.exe
- 如何将cocos2d-x项目打包成一个.exe
- 如何将cocos2d-x项目打包成一个.exe
- 如何将cocos2d-x项目打包成一个.exe
- 如何将cocos2d-x项目打包成一个.exe
- 如何将cocos2d-x项目打包成一个.exe
- 如何将cocos2d-x项目打包成一个.exe
- vs2008 将exe文件和库文件打包成一个安装程序
- 如何将python程序打包成exe文件
- 如何将Java项目代码打包成exe文件
- 在字符串中删除特定的字符
- 关于测试的心得
- Relish the Moment品味现在
- 工作之后才知道
- 测试人员华丽的转身——自动化测试之我见
- 如何将EXE和资源文件打包成一个EXE
- 开始
- perl ---一个月的痛与快乐(9.18)
- ucgui移植记录
- 国耻日论成败
- ceshi
- 用PureBasic开发控件
- DDR SDRAM容量计算
- http://acm.pku.edu.cn/JudgeOnline/problem?id=2305 大数的b进制数 取模