如何用DELPHI编程实现测试自身大小的功能
比如,先测试一下自身的大小
  if 自身大小=20.0 KB  then 
     运行自身
  else
     就直接退出程序
     {或者重启电脑之类的操作等等}
说明这个20.0 KB,就是自身的大小,而不是“占用空间的大小”

解决方案 »

  1.   

    从网上找到一些代码如下:
    Buttona按扭代码
    var
        hFile:Integer;
        sssfile:string;
    begin
        sssfile:=ExtractFilePath(paramstr(0))+'\ABCCProTS.exe';
        hFile:=CreateFile(PChar(sssfile),GENERIC_READ,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
        Edit2.Text:=IntToStr(GetFileSize(hFile,0) div  1024)+ 'KB ';
    假设ABCCProTS.exe文件大小为:378KB
    为什么,我第一次按这个Buttona按扭,能得到这个378KB,
    但是再按这个按扭,就得到如下:4194303KB 
      

  2.   

    //------- 判断程序大小 超过则关闭
    procedure TForm1.ThanSizeClose;
    var
      F: file of byte;
      I_Filezise: Integer;
    begin
      Filemode := 0;
      Assignfile(F,Application.ExeName);
      try
        Reset(F);
        I_Filezise := Filesize(F);
      finally
        Closefile(F);
        Filemode := 2;
      end;  if I_Filezise > 1000000 then
      begin
        Application.Terminate;
        Abort;
      end;
    end;
      

  3.   

    谢谢ADSLAN分享,你的代码测试通过,谢谢赐教,我在网上也找到一个代码
    测试也通过,也上传分享与网络》》》》》》》》》》
    var
        hFile:Integer;
        sssfile:string; 
    begin
      sssfile:=ExtractFilePath(paramstr(0))+'\SelfCProTS.exe';
      hFile:= CreateFile(PChar(sssfile),GENERIC_READ,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
      try
        Edit2.Text:=trim(IntToStr(GetFileSize(hFile, 0) div 1024) + 'KB');
        Filesssize:=Edit2.Text;
      finally
        CloseHandle(hFile);
      end;