Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1257724
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2008-11-27 21:17:38



我在EXE文件尾部追加一些数据,在EXE运行时想把这些数据读出来,Delphi不能自己打开自己,请问一下怎么记取?  
 

你会不会程序调用别的程序   会的话打开自己也是一样的    
   
  shellexecute  
   
  use   shellapi

 
   
  还是先看下windows     pe文件格式  
  修改   可以通过很多方式的\  
   
  最终都是   映射成硬盘的文件

学习了

用文件流喽

读取是容易,,master   delphi7   就有demo  
   
  procedure   TForm1.FormCreate(Sender:   TObject);  
  var  
      nSize:   Integer;  
      hFile:   THandle;  
      strSize:   String;  
   
  begin  
      hFile   :=   CreateFile   (PChar   (ParamStr   (0)),  
          0,   FILE_SHARE_READ,   nil,   OPEN_EXISTING,   0,   0);  
      nSize   :=   GetFileSize   (hFile,   nil);  
      CloseHandle   (hFile);  
   
      SetLength   (strSize,   20);  
      Str   (nSize,   strSize);  
   
      Caption   :=   'Size   =   '   +   strSize;  
  end;  
   
  createfile打开,再read   即可;但是写到入exe文件中,需要点技巧  
   
  顶~~~vividw(vividw)   ~~~  
 

故意路过,不发表意见和谬论。:)   :)

然也

procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      fs:TFileStream;  
      strBuf:array[0..501]   of   char;  
  begin  
      fs:=TFileStream.Create(Application.ExeName,fmOpenRead);         //创建一个文件流对象  
      try  
          fs.Position:=1000;                                     //将文件流对象指针指到1000的位置  
          fs.ReadBuffer(strBuf,500);                     //读取长度为500的这一段内容  
          showmessage(strBuf);  
      finally  
          fs.Free;  
      end;  
  end;  
   
  主要思想应该都是这些了,其他的你可以自己再改造一下。

蹭分

刚好前几天写了这个..不过我不是这样的..写入就不说了,太简单了..读取是COPY自身到TEMP目录..再已文本读取..指向尾部..反向读取100个再CenterCat(string,'start:',':end')..

用   TFileStream   就可以打开。模式:   fmOpenRead   +   fmShareDenyNone

阅读(826) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~