delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
EXE文件如何读取它自身的内容. Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiAPI/html/delphi_20061123125818182.html
我在EXE文件尾部追加一些数据,在EXE运行时想把这些数据读出来,Delphi不能自己打开自己,请问一下怎么记取?  
 

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

http://www.delphibox.com/article.asp?articleid=422  
   
  还是先看下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


文章来源:http://www.delphi2007.net/DelphiAPI/html/delphi_20061123125818182.html
posted on 2008-11-27 21:11 delphi2007 阅读(293) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。