vclhead.dpr

来自「在内存中动态运行可执行程序的演示」· DPR 代码 · 共 34 行

DPR
34
字号
program VclHead;

uses
  Forms,{因为欲运行的exe包含了Vcl窗口,所以必须引用此单元}
  Classes,
  MemoryRun,
  Lh5Unit;

{$R *.res}

const
fmOpenRead       = $0000;
fmShareDenyNone  = $0040;
var
FileStreamRead:TFileStream;
MyStreamRead,MyStreamUnPack:TMemoryStream;
iPackSize:integer;
begin
FileStreamRead:=TFileStream.Create(ParamStr(0),fmOpenRead or fmShareDenyNone);
FileStreamRead.Seek(-(3+sizeof(iPackSize)),soFromEnd);
FileStreamRead.Read(iPackSize,sizeof(iPackSize));
FileStreamRead.Seek(-(3+sizeof(iPackSize)+iPackSize),soFromEnd);
MyStreamRead:=TMemoryStream.Create;
MyStreamUnPack:=TMemoryStream.Create;
MyStreamRead.CopyFrom(FileStreamRead,iPackSize);
FileStreamRead.Free;

MyStreamRead.Position:=0;
LHAExpand(MyStreamRead,MyStreamUnPack);
CjtMemoryRun(MyStreamUnPack.Memory);
MyStreamRead.Free;
MyStreamUnPack.Free;
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?