当前位置:编程学习 > VB >>

Delphi及VB res资源进exe(一般是主程序),实现调用

Title:Delphi及VB res资源进主程序,实现调用

Author:InSun (Minghacker)

From:www.4safer.com

Blog:http://yxmhero1989.blog.163.com/

Delphi及VB res资源进exe(一般是主程序),实现调用 - InSun - InSuns PaRaDise

 

先说Delphi的,因为VB的操作太简单。

资源文件(.res)
资源文件的扩展名为.res,资源文件可以将应用程序用到的资源(如声音、图像,exe等)包含进来,应用程序调用资源文件编译后,可以将资源编译到.exe 文件中。

1.建立资源文件
在此以创建一个exe的资源文件为例进行具体讲解。譬如我要把Project3.exe(其实是我的4safer Scanner 3.0.exe,命名为Project3.exe而已)加入我的主程序中。
(1)新建一个文本文件,录入代码如下:

 Project3 exefile  Project3.exe

资源类型列表:
Wave:   资源文件是声音文件;
RCDATA:   一般二进制文件;
AVI:   AVI动画;
ICON:   图标文件;   
BITMAP:   位图文件;   
CURSOR:   光标文件;
exefile: exe文件
FILE:    一般文件

Delphi及VB res资源进exe(一般是主程序),实现调用 - InSun - InSuns PaRaDise

 

(2)将文本文件保存为名字为2.rc 的RC 的文件。RC 文件是资源的源文件,编译器编译这些文件,生成.res 的资源文件。
(3)将2.rc 编译生成资源文件。找到Brcc32.exe 文件所在地址,一般都在Delphi 7 安装盘的BorlandDelphi7Bin 目录下。

我想大家都会我的电脑右键属性高级然后环境变量添加PATH吧。

Delphi及VB res资源进exe(一般是主程序),实现调用 - InSun - InSuns PaRaDise
 

  在DOS 的提示符下运行Brcc32.exe 文件目录,代码如下:

  brcc32  2.rc

Delphi及VB res资源进exe(一般是主程序),实现调用 - InSun - InSuns PaRaDise

 

运行完毕后,在当前目录内生成的2.res 资源文件已经将Project3.exe文件编译成资源文件了。
//用Image Editor 软件如同建立图像文件一样,可以方便地建立图像的资源文件。

//vc里面可以建立一个资源文件,把自己的wav文件exe文件bmp文件什么的都统统import进去就可以了。
//然后保存成res资源文件。
//要注意的是exe文件要在"EXEFILE"里面,引号必须要,字母大写。

//大家可以看看陈经韬的《谈Delphi编程中资源文件的应用》

//Restorator 2009用可以编写很easy的编辑资源res,rc。很久以前小黑们做的修改灰鸽子皮肤版权之类的教程你很久以前是否也sb似的看过呢?

Delphi及VB res资源进exe(一般是主程序),实现调用 - InSun - InSuns PaRaDise


2.调用资源文件
调用资源文件的代码如下:

  {$R *.DFM}
  {$R 2.res} //在此声明2.res 资源文件,记得把2.res拷到主Delphi程序源码下

譬如我最近做的一个Delphi main程序,需要调用4safer Scanner 3.0,菜单里一个buttonclick事件,代码如下,是释放与调用的精髓了。

Delphi及VB res资源进exe(一般是主程序),实现调用 - InSun - InSuns PaRaDise

 

procedure TForm1.N4saferScanner301Click(Sender: TObject);
   var
       t : TResourceStream;
     begin
       try
         t := TResourceStream.Create(HInstance,Project3,exefile); //其中HInstance为一个句柄常量;Project3为资源名;exefile为资源类型
         t.SavetoFile(4safer Scanner 3.0.exe);//t.SaveToFile(c:X.exe)这里说明了其他路径怎么保存
        winexec(4safer Scanner 3.0.exe,sw_Normal);
       finally
         t.free;
end;

delphi/3871.html">http://www.isstudy.com/delphi/3871.html里面建立一个sound.rc编译成sound.res。道理一样。

读取资源文件,并播放声音。代码如下:

  procedure TForm1.FormCreate(Sender: TObject);
var
hResInfo :THandle;
begin
hResInfo := FindResource(HInstance,’Sound’,’wav’);
hRes := LoadResource(HInstance, hResInfo);
If hRes > 32 Then
begin
PtrSound :=LockResource(hRes);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SndPlaySound(PtrSound,Snd_Async or Snd_Memory);
end;

若有人试图这样调用躲避杀毒软件,那是sb的。技术一直在进步,杀软的阴招越来越多,魔高一丈。

推荐看

将EXE注入到其它进程中运行

http://d.download.csdn.net/down/1388718/langouster

在内存中运行EXE可执行文件(Delphi7源代码)
http://download.csdn.net/source/1020333

 

--------------淫荡的分割线,下面将VB的,一笔带过

补充:软件开发 , Delphi ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,