icelock判断注册是否有效的BUG

GetHDSerialNumber在通过快捷方式点进去会取不到数据。屏蔽红色段即可

function tIceLock.LoadKeyFile : Integer;
var
  r  : rIceRecord;
  pa : pIceArray;
  f  : file of aIceArray;
begin
  IsRegistered := false;
  AssignFile(f,fKeyFileName);
  {$I-}
  reset(f);
  {$I+}
  LastIoResult := IoResult;
  if LastIoResult = 0 then
  begin
    pa := @r;
    {$I-}
    read(f,pa^);
    {$I+}
    LastIoResult := IoResult;
    if LastIoResult = 0 then
    begin
      EncryptRecord(@r);

      //if r.HDSerialNo <> GetHDSerialNumber then
      {+++ Current HDserialNo must be same as the one where KeyFile was
           Saved, if not, this is an invalid copy.
      }
      //  LoadKeyFile := ieNotSameHD
      //else
      if (r.DemoLicense) and (Date > r.ExpirationDate) then
      {+++ If License type is temporary and current date is after expiration
           date, this license is over.
      }
        LoadKeyFile := ieExpired
      else
      if CheckKey(r.Name,r.Key) then
      begin
        UserName := r.Name;
        UserKey  := r.Key;
        {+++}
        fDemoLicense := r.DemoLicense;
        fExpirationDate := r.ExpirationDate;
        {+++}
        LoadKeyFile := ieOkay;
        IsRegistered := true;
      end
        else LoadKeyFile := ieInvalidKey;
    end
      else LoadKeyFile := ieFileError;
    closefile(f);
  end
    else LoadKeyFile := ieFileError;
end;

posted @ 2009-09-25 09:11  毛小毛  阅读(303)  评论(0编辑  收藏  举报