正在阅读:软件的版本更新检查实现软件的版本更新检查实现

2004-11-01 15:25 出处:CSDN 作者:Raptor 责任编辑:linjixiong


  Function  GetVerStr : String;
  Procedure SetVerStr( aVerStr : String );
  public
  constructor Create;
  destructor Destroy; override;
  Procedure GetVersionFromFile( aFileName : String );
  Function  Compare( aVer : TMFileVersion ) : Integer;
  Property VerStr : String read GetVerStr write SetVerStr;
  End;
  { TMFileVersion }
  //  init
  constructor TMFileVersion.Create;
  Begin
  Inherited;
  FMajor   := 0;
  FMinor   := 0;
  FRelease := 0;
  FBuild   := 0;
  End;
  destructor TMFileVersion.Destroy;
  Begin
  Inherited;
  End;
  //  Get version info from a file
  Procedure TMFileVersion.GetVersionFromFile( aFileName : String );
  Type
  PVS_FIXEDFILEINFO = ^VS_FIXEDFILEINFO;
  Var
  h : Cardinal;        // a handle, ignore
  nSize : Cardinal;    // version info size
  pData : Pointer;     // version info data
  pffiData : PVS_FIXEDFILEINFO;  // fixed file info data
  nffiSize : Cardinal; // fixed file info size
  Begin
  FMajor   := 0;
  FMinor   := 0;
  FRelease := 0;
  FBuild   := 0;
  If ( FileExists( aFileName ) ) Then
  FBuild := 1;
  nSize := GetFileVersionInfoSize( PChar( aFileName ), h );
  If ( nSize = 0 ) Then
  Exit;
  GetMem( pData, nSize );
  Try
  GetFileVersionInfo( PChar( aFileName ), h, nSize, pData );
  If ( VerQueryValue( pData, '\', Pointer( pffiData ), nffiSize ) ) Then
  Begin
  FMajor   := ( pffiData^.dwFileVersionMS ) SHR 16;
  FMinor   := ( pffiData^.dwFileVersionMS ) AND $FFFF;
  FRelease := ( pffiData^.dwFileVersionLS ) SHR 16;
  FBuild   := ( pffiData^.dwFileVersionLS ) AND $FFFF;
  End;
  Finally
  FreeMem( pData );
  End;
  End;




察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品