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).最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用.资源是程 ...
随机推荐
- [Everyday Mathematics]20150131
在 $\bbR^4$ 中定义如下有界区域 $\Omega$: $$\bex \Omega=\sed{(x,y,z,w)\in\bbR^4;\ |x|+|y|+\sqrt{z^2+w^2}\leq 1} ...
- logback.xml_appender配置
logback<appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的组件. < ...
- 有效处理java异常的三个原则
Java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮.易于调试.异常之所以是一种强大的调试手段,在于其回答了以下三个问题: 什么出了错? 在哪出的错? 为什么出错? ...
- C#常用格式输出
ylbtech- .NET-Basic:C#常用格式输出 C#常用格式输出 1.A,相关概念返回顶部 using System; namespace Test { class Formating { ...
- redis配置实例及redis.conf详细说明
一.配置实例 1.redis修改持久化路径.日志路径.清缓存 redis修改持久化路径和日志路径 vim redis.conf logfile /data/redis_cache/logs/redi ...
- Gridview LookupEdit gridLookUpEdit z
LookupEdit一般用法: 绑定数据源: lookUpEdit.Properties.ValueMember = 实际要用的字段; ...
- SQL删除数据库里所有表的外键,同时删除所有用户表
SQL删除数据库里所有表的外键,同时删除所有用户表 删除所有的用户表的外键,直接将下面的代码拷贝到数据库里执行即可: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- ASP.NET中常用的字符串分割函数
asp.net字符串分割函数用法 先来看个简单的实例 但是其数组长度却是25,而不是3.下面这种方法是先将“[111cn.net]”替换成一个特殊字符,比如$,在根据这个字符执行Split 例如下面我 ...
- 开通GitHub以及使用笔记
把小游戏的代码和博客迁移到GitHub上,路径是:https://github.com/GAMTEQ,欢迎访问 以下是使用GITHUB的一些命令 504 cd code 506 mkdir Fai ...
- redo文件四
v$session_wait 用来查询redo buffer的空间信息 select sid,event,seconds_in_wait,state from v$session_wait where ...