程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 嵌入和提取任何類型的文件

嵌入和提取任何類型的文件

編輯:Delphi
//下面是 Windows 支持的資源格式: 
RT_CURSOR    = MakeIntResource(1); 
RT_BITMAP    = MakeIntResource(2); 
RT_ICON     = MakeIntResource(3); 
RT_MENU     = MakeIntResource(4); 
RT_DIALOG    = MakeIntResource(5); 
RT_STRING    = MakeIntResource(6); 
RT_FONTDIR   = MakeIntResource(7); 
RT_FONT     = MakeIntResource(8); 
RT_ACCELERATOR = MakeIntResource(9); 
RT_RCDATA    = Types.RT_RCDATA; //MakeIntResource(10); 
RT_MESSAGETABLE = MakeIntResource(11); 
  DIFFERENCE  = 11; 
RT_GROUP_CURSOR = MakeIntResource(DWord(RT_CURSOR + DIFFERENCE)); 
RT_GROUP_ICON  = MakeIntResource(DWord(RT_ICON + DIFFERENCE)); 
RT_VERSION   = MakeIntResource(16); 
RT_DLGINCLUDE  = MakeIntResource(17); 
RT_PLUGPLAY   = MakeIntResource(19); 
RT_VXD     = MakeIntResource(20); 
RT_ANICURSOR  = MakeIntResource(21); 
RT_ANIICON   = MakeIntResource(22); 
 
 
//盡管 Windows 規定 RCDATA 用作自定義格式, 我們也可以自定義格式名稱, 譬如本例(rc 文件): 
MyFile1 RCDATA "c:\Windows\system32\notepad.exe" 
MyFile2 MyRes "c:\Windows\System32\calc.exe" 
 
{上面把 notepad.exe 時指定為 RCDATA 格式; 把 calc.exe 就指定成了自定義的 MyRes 格式} 
 
 
//本例在資源中嵌入了記事本和計算器, 然後提取並調用: 
 
unit Unit1; 
 
interface 
 
uses 
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
 Dialogs, StdCtrls; 
 
type 
 TForm1 = class(TForm) 
  Button1: TButton; 
  Button2: TButton; 
  procedure Button1Click(Sender: TObject); 
  procedure Button2Click(Sender: TObject); 
 end; 
 
var 
 Form1: TForm1; 
 
implementation 
 
{$R *.dfm} 
 
procedure TForm1.Button1Click(Sender: TObject); 
var 
 rs: TResourceStream; 
begin 
 rs := TResourceStream.Create(HInstance, 'MyFile1', RT_RCDATA); 
 rs.SaveToFile('c:\temp\pad.exe'); 
 WinExec('c:\temp\pad.exe', 1); 
 rs.Free; 
end; 
 
procedure TForm1.Button2Click(Sender: TObject); 
var 
 rs: TResourceStream; 
begin 
 rs := TResourceStream.Create(HInstance, 'MyFile2', 'MyRes'); 
 rs.SaveToFile('c:\temp\sum.exe'); 
 WinExec('c:\temp\sum.exe', 1); 
 rs.Free; 
end; 
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved