delphi 2010 资源文件使用
Project
Recources...
//1提取出资源
procedure TForm1.Button1Click(Sender: TObject);
begin
with TResourceStream.Create(HInstance, 'SnapShot_EXE', RT_RCDATA) do
begin
SavetoFile('SnapShot.exe');
Free;
end;
end;
//播放wav文件
//使用icon 文件
TResourceStream = class(TCustomMemoryStream)
private
HResInfo: THandle;
HGlobal: THandle;
procedure Initialize(Instance: THandle; Name, ResType: PChar; FromID: Boolean);
public
constructor Create(Instance: THandle; const ResName: string; ResType: PChar);
constructor CreateFromID(Instance: THandle; ResID: Integer; ResType: PChar);
destructor Destroy; override;
function Write(const Buffer; Count: Longint): Longint; override;
end;
const
{ Predefined Resource Types }
{$EXTERNALSYM RT_CURSOR}
RT_CURSOR = MakeIntResource(1); //光标文件
{$EXTERNALSYM RT_BITMAP}
RT_BITMAP = MakeIntResource(2);//位图
{$EXTERNALSYM RT_ICON}
RT_ICON = MakeIntResource(3);//图标
{$EXTERNALSYM RT_MENU}
RT_MENU = MakeIntResource(4);
{$EXTERNALSYM RT_DIALOG}
RT_DIALOG = MakeIntResource(5);
{$EXTERNALSYM RT_STRING}
RT_STRING = MakeIntResource(6);
{$EXTERNALSYM RT_FONTDIR}
RT_FONTDIR = MakeIntResource(7);
{$EXTERNALSYM RT_FONT}
RT_FONT = MakeIntResource(8);
{$EXTERNALSYM RT_ACCELERATOR}
RT_ACCELERATOR = MakeIntResource(9);
{$EXTERNALSYM RT_RCDATA}
RT_RCDATA = Types.RT_RCDATA; //MakeIntResource(10);
{$EXTERNALSYM RT_MESSAGETABLE}
RT_MESSAGETABLE = MakeIntResource(11);
DIFFERENCE = 11;
{$EXTERNALSYM DIFFERENCE}
RT_GROUP_CURSOR = MakeIntResource(DWORD(RT_CURSOR) + DIFFERENCE);
{$EXTERNALSYM RT_GROUP_CURSOR}
RT_GROUP_ICON = MakeIntResource(DWORD(RT_ICON) + DIFFERENCE);
{$EXTERNALSYM RT_GROUP_ICON}
RT_VERSION = MakeIntResource(16);
{$EXTERNALSYM RT_VERSION}
RT_DLGINCLUDE = MakeIntResource(17);
{$EXTERNALSYM RT_DLGINCLUDE}
RT_PLUGPLAY = MakeIntResource(19);
{$EXTERNALSYM RT_PLUGPLAY}
RT_VXD = MakeIntResource(20);
{$EXTERNALSYM RT_VXD}
RT_ANICURSOR = MakeIntResource(21);
{$EXTERNALSYM RT_ANICURSOR}
RT_ANIICON = MakeIntResource(22);
{$EXTERNALSYM RT_ANIICON}
RT_HTML = MakeIntResource(23);
{$EXTERNALSYM RT_HTML}
RT_MANIFEST = MakeIntResource(24);
{取出现Wav资源}
with TResourceStream.Create(HInstance, 'warning', RT_RCDATA) do
begin
SaveToFile('warning.wav');
Free;
end;
//把EXE文件打包到资源文件中
一.编写rc脚本文本
新建一个记事本,输入 ExeFile1 ExeFile "myExeFile.exe" 保存文件为 ExeRes.rc
二.将rc文件编译成res资源文件
在dos中输入
brcc32 C:\Users\Administrator\Desktop\ExeRes.rc
//brcc32.exe在DelphiX\Bin目录中 将其复制到 C:\Windows目录下面
三.在Delphi单元中加入资源文件
新建一个项目,把ExeRes.RES文件复制到 项目目录下,
在 implementation 的{$R *.dfm}的下面输入:
{$R ExeRes.RES}
四.把资源文件中exe文件提取出来
uses classes;
procedure ExtractRes( ResType, ResName, ResNewName : String );
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType));
Res.SavetoFile(ResNewName);
Res.Free;
end;
//把资源文件中exe文件提取出来
procedure TForm1.Button1Click(Sender: TObject);
begin
ExtractRes('exefile','ExeFile1','C:\Users\Administrator\Desktop\aaa.exe');
end;
delphi 2010 资源文件使用的更多相关文章
- 【转】资源文件在Delphi编程中的应用
段东宁 计亚南 (郴州职业技术学院, 湖南 郴州 423000) 摘要: 资源文件是一种能有效地组织.管理和使用资源的文件形式,在软件开发中有着广泛的应用.本文详细介绍了在Delphi编程中资源文件 ...
- Delphi 中将一些 Dll等生成资源文件打包成一个独立的EXE程序方法步骤
资源文件一般为扩展名为res的文件,其自带的资源编译工具BRCC32.EXE(位于/Delphi/BIN目录下) 1.编写rc脚本文本 用记事本或其它文本编辑器编写一个扩展名为rc的文件,格式分别为在 ...
- delphi 资源文件详解
delphi资源文件详解 一.引子: 现在的Windows应用程序几乎都使用图标.图片.光标.声音等,我们称它们为资源(Resource).最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便 ...
- 教程-Delphi资源文件(全面分析于使用)
Delphi资源文件(全面分析之位图.光标.图标.AVI.JPEG.Wave) 几乎每个Windows应用程序都使用图标.图片.光标等资源.资源是程序的一部分,但是它是不可执行代码.下面我们就详细 ...
- Delphi资源文件(全面分析之位图、光标、图标、AVI、JPEG、Wave)
几乎每个Windows应用程序都使用图标.图片.光标等资源.资源是程序的一部分,但是它是不可执行代码.下面我们就详细介绍资 源文件在Delphi5中建立和使用方法. 1.把资源放到Exe文件的优点 ...
- Delphi 资源文件( .res)
一. 现在的Windows应用程序几乎都使用图标.图片.光标.声音等,我们称它们为资源(Resource).最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用.资源是 ...
- 【转】Delphi 2010 Lite加装帮助文件
基于爱好,下载了一个delphi 2010 lite,业余玩玩. 不过这东西是网友重新打包的,没有带帮助.在网上搜索一下加摸索后搞定.步骤如下: Delphi 2010本身的帮助(MSDN风格的)1. ...
- delphi资源文件的使用
delphi资源文件的使用 资源文件(*.res)通过编译指令 $R 关联, 譬如工程文件 Project1 中的 {$R *.res} 就是关联 Project1.res 资源文件, 我们直接写作 ...
- delphi资源文件制作及使用详解
一.引子:现在的Windows应用程序几乎都使用图标.图片.光标.声音等,我们称它们为资源(Resource).最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用.资源是程 ...
随机推荐
- 编译boost (windows msvc14)
我的环境 OS: WIN10 (x64) IDE: VS2015 (VC14) http://www.boost.org/ 1. 下载 下载boost包, boost_1_62_0.7z 使用ASIO ...
- POJ 1811 Prime Test
题意:对于一个大整数,判断是否质数,如果不是质数输出最小质因子. 解法:判断质数使用Miller-Rabin测试,分解质因子使用Pollard-Rho,Miller-Rabin测试用的红书模板,将测试 ...
- HDU 5114 Collision
Collision Time Limit: 15000/15000 MS (Java/Others) Memory Limit: 512000/512000 K (Java/Others) Total ...
- [python]倒计时实现
for num in range(5,0,-1): time.sleep(1) sys.stdout.flush() sys.stdout.write('\rPlease Wa ...
- qt 获取天气的接口
博客来源:http://blog.csdn.net/lzqwebsoft/article/details/7054045 网站api接口:http://smart.weather.com.cn/wzf ...
- [原创]从Confluence获取html table并将其序列化为C#类文件的工具
公司项目的游戏数据模型文档写在Confluence上,由于在项目初期模型变动比较频繁,手工去将文档中最新的模型结构同步到代码中比较费时费力,而且还很容易出错,于是写了一个小工具来自动化这个同步更新模型 ...
- Write a program to convert decimal to 32-bit unsigned binary.
Write a program to convert decimal to 32-bit unsigned binary. Write a program to convert a 32-bit un ...
- bzoj 1009 [HNOI2008]GT考试(DP+KMP+矩阵乘法)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1009 [题意] 给定一个字符串T,问长度为n且不包含串T的字符串有多少种. [思路] ...
- pci hole -- 被吞噬的内存
参见wiki: http://en.wikipedia.org/wiki/PCI_hole PCI 空洞 pci 空洞是32位硬件和32位操作系统一个导致计算机显示的内存比实际安装的内存少的一个限制. ...
- [Java基础]Java通配符
转自:http://peiquan.blog.51cto.com/7518552/1303768 本以为这会是一篇比较基础的博客,可一旦深究的时候,才发现很多有意思的东西,也发现了很多令人迷惑的地方. ...