Numéro de version


Comment obtenir le numéro de version d'une application lors de l'exécution
unité de GetVersionInfo

interface


& nbsp & nbsp Windows, Classes, SysUtils

procédure GetProjectVersionInfo(AVersionList: TStrings AFileName: string = ')
fonction de GetBuildInfo(var V1, V2, V3, V4: Word AFileName: string = '): Boolean
fonction de GetBuildInfoAsString(AFileName: string = '): string

application

type
& nbsp & nbsp PTransBuffer = ^TTransBuffer
& nbsp & nbsp TTransBuffer = array[1..13] de type smallint

const
& nbsp & nbsp CInfoStr : array[1..13] de string =
& ! & ! & ! & nbsp ('FileVersion',
& ! & ! & ! & ! & ! 'Société',
& ! & ! & ! & ! & ! 'FileDescription',
& ! & ! & ! & ! & ! 'InternalName',
& ! & ! & ! & ! & ! 'LegalCopyright',
& ! & ! & ! & ! & ! 'LegalTradeMarks',
& ! & ! & ! & ! & ! 'OriginalFileName',
& ! & ! & ! & ! & nbsp 'ProductName',
& ! & ! & ! & ! & ! 'ProductVersion',
& ! & ! & ! & ! & ! 'Commentaires',
& ! & ! & ! & ! & ! 'CurrentProgramVersion',
& ! & ! & ! & ! & ! 'CurrentDatabaseVersion',
& ! & ! & ! & ! & ! 'VersionDetails')

procédure GetProjectVersionInfo(AVersionList: TStrings AFileName: string = ')
{
& nbsp Cette procédure renvoie TOUTES les informations de version comme distinct
& nbsp chaîne d'entrées d'un TString liste. Chaque élément peut ensuite être consulté
& nbsp par l'indexation de la TString liste ainsi: AVersionList[0], AVersionList[1] etc..
}
var
& nbsp & nbsp I: Integer
& nbsp & nbsp InfoSize: DWORD
& nbsp & nbsp pTrans: PTransBuffer
& nbsp & nbsp TransStr: string
& nbsp & nbsp TypeStr: string
& nbsp & nbsp Valeur: PChar
& nbsp & nbsp VerBuf: pointeur
& nbsp & nbsp VerSize: DWORD
& nbsp & nbsp Wnd: DWORD
begin
& nbsp & nbsp AVersionList.Clair
& nbsp & nbsp si AFileName = '
& ! & ! & ! & nbsp AFileName := ParamStr(0)
& nbsp & nbsp InfoSize := GetFileVersioninfoSize(PChar(AFileName), Wnd)

& nbsp & nbsp si (InfoSize <> 0) then
& nbsp & nbsp commencer
& ! & ! & ! & nbsp GetMem(VerBuf, InfoSize)
& ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & nbsp si GetFileVersionInfo(PChar(AFileName), Wnd, InfoSize, VerBuf)
& ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp VerQueryValue(VerBuf, PChar('\VarFileInfo\Traduction'),
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Pointeur(pTrans), VerSize)

& ! & ! & ! & ! & ! & ! & ! & nbsp TransStr := IntToHex(pTrans^[1], 4) IntToHex(pTrans^[2], 4)

& ! & ! & ! & ! & ! & ! & ! & nbsp for i := Faible(CInfoStr) à Élevé(CInfoStr) ne
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp TypeStr := 'StringFileInfo\' TransStr '\' CInfoStr[I]

& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si VerQueryvalue(VerBuf, PChar(TypeStr),
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Pointeur(de la Valeur), VerSize)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp AVersionList.Ajouter(CInfoStr[I] '=' Valeur)
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp enfin
& ! & ! & ! & ! & ! & nbsp FreeMem(VerBuf)
& ! & ! & ! & nbsp fin
& nbsp & nbsp fin
fin

fonction de GetBuildInfo(var V1, V2, V3, V4: Word AFileName: string = '): Boolean
{
& nbsp Cette procédure renvoie à l'individu Majeur/Mineur/Version/Build
& nbsp valeurs de l'information de version.
}
var
& nbsp & nbsp VerInfoSize: DWORD
& nbsp & nbsp VerInfo: Pointeur
& nbsp & nbsp VerValueSize: DWORD
& nbsp & nbsp VerValue: PVSFixedFileInfo
& nbsp & nbsp Mannequin: DWORD
begin
& nbsp & nbsp Résultat := True
& nbsp & nbsp si AFileName = '
& ! & ! & ! & nbsp AFileName := ParamStr(0)
& nbsp & nbsp VerInfoSize := GetFileVersionInfoSize(PChar(AFileName), Dummy)
& nbsp & nbsp si VerInfoSize = 0, alors
& nbsp & nbsp commencer
& ! & ! & ! & nbsp Résultat := False
& ! & ! & ! & nbsp Sortie
& nbsp & nbsp fin
& nbsp & nbsp GetMem(VerInfo, VerInfoSize)
& nbsp & nbsp essayer
& ! & ! & ! & nbsp GetFileVersionInfo(PChar(AFileName), 0, VerInfoSize, VerInfo)
& ! & ! & ! & nbsp VerQueryValue(VerInfo, '\', Pointeur(VerValue), VerValueSize)

& ! & ! & ! & nbsp avec VerValue^ do
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp V1 := dwFileVersionMS shr 16
& ! & ! & ! & ! & ! & nbsp V2 := dwFileVersionMS et $FFFF
& ! & ! & ! & ! & ! & nbsp V3 := dwFileVersionLS shr 16
& ! & ! & ! & ! & ! & nbsp V4 := dwFileVersionLS et $FFFF
& ! & ! & ! & nbsp fin
& nbsp & nbsp enfin
& ! & ! & ! & nbsp FreeMem(VerInfo, VerInfoSize)
& nbsp & nbsp fin
fin

fonction de GetBuildInfoAsString(AFileName: string = '): string
var
& nbsp & nbsp V1: Mot
& nbsp & nbsp V2: Mot
& nbsp & nbsp V3: Mot
& nbsp & nbsp V4: Mot
begin
& nbsp & nbsp si GetBuildInfo(V1, V2, V3, V4)
& ! & ! & ! & nbsp Résultat := Format ('%d.%d.%d.%d', [V1, V2, V3, V4])
& nbsp & nbsp else
& ! & ! & ! & nbsp Résultat := '
fin

à la fin.









Numero de version


Numero de version : Plusieurs milliers de conseils pour vous faciliter la vie.


Comment obtenir le numero de version d'une application lors de l'execution
unite de GetVersionInfo

interface


& nbsp & nbsp Windows, Classes, SysUtils

procedure GetProjectVersionInfo(AVersionList: TStrings AFileName: string = ')
fonction de GetBuildInfo(var V1, V2, V3, V4: Word AFileName: string = '): Boolean
fonction de GetBuildInfoAsString(AFileName: string = '): string

application

type
& nbsp & nbsp PTransBuffer = ^TTransBuffer
& nbsp & nbsp TTransBuffer = array[1..13] de type smallint

const
& nbsp & nbsp CInfoStr : array[1..13] de string =
& ! & ! & ! & nbsp ('FileVersion',
& ! & ! & ! & ! & ! 'Societe',
& ! & ! & ! & ! & ! 'FileDescription',
& ! & ! & ! & ! & ! 'InternalName',
& ! & ! & ! & ! & ! 'LegalCopyright',
& ! & ! & ! & ! & ! 'LegalTradeMarks',
& ! & ! & ! & ! & ! 'OriginalFileName',
& ! & ! & ! & ! & nbsp 'ProductName',
& ! & ! & ! & ! & ! 'ProductVersion',
& ! & ! & ! & ! & ! 'Commentaires',
& ! & ! & ! & ! & ! 'CurrentProgramVersion',
& ! & ! & ! & ! & ! 'CurrentDatabaseVersion',
& ! & ! & ! & ! & ! 'VersionDetails')

procedure GetProjectVersionInfo(AVersionList: TStrings AFileName: string = ')
{
& nbsp Cette procedure renvoie TOUTES les informations de version comme distinct
& nbsp chaîne d'entrees d'un TString liste. Chaque element peut ensuite etre consulte
& nbsp par l'indexation de la TString liste ainsi: AVersionList[0], AVersionList[1] etc..
}
var
& nbsp & nbsp I: Integer
& nbsp & nbsp InfoSize: DWORD
& nbsp & nbsp pTrans: PTransBuffer
& nbsp & nbsp TransStr: string
& nbsp & nbsp TypeStr: string
& nbsp & nbsp Valeur: PChar
& nbsp & nbsp VerBuf: pointeur
& nbsp & nbsp VerSize: DWORD
& nbsp & nbsp Wnd: DWORD
begin
& nbsp & nbsp AVersionList.Clair
& nbsp & nbsp si AFileName = '
& ! & ! & ! & nbsp AFileName := ParamStr(0)
& nbsp & nbsp InfoSize := GetFileVersioninfoSize(PChar(AFileName), Wnd)

& nbsp & nbsp si (InfoSize <> 0) then
& nbsp & nbsp commencer
& ! & ! & ! & nbsp GetMem(VerBuf, InfoSize)
& ! & ! & ! & nbsp essayer
& ! & ! & ! & ! & ! & nbsp si GetFileVersionInfo(PChar(AFileName), Wnd, InfoSize, VerBuf)
& ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & nbsp VerQueryValue(VerBuf, PChar('\VarFileInfo\Traduction'),
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Pointeur(pTrans), VerSize)

& ! & ! & ! & ! & ! & ! & ! & nbsp TransStr := IntToHex(pTrans^[1], 4) IntToHex(pTrans^[2], 4)

& ! & ! & ! & ! & ! & ! & ! & nbsp for i := Faible(CInfoStr) a Eleve(CInfoStr) ne
& ! & ! & ! & ! & ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp TypeStr := 'StringFileInfo\' TransStr '\' CInfoStr[I]

& ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp si VerQueryvalue(VerBuf, PChar(TypeStr),
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp Pointeur(de la Valeur), VerSize)
& ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & ! & nbsp AVersionList.Ajouter(CInfoStr[I] '=' Valeur)
& ! & ! & ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & ! & ! & nbsp fin
& ! & ! & ! & nbsp enfin
& ! & ! & ! & ! & ! & nbsp FreeMem(VerBuf)
& ! & ! & ! & nbsp fin
& nbsp & nbsp fin
fin

fonction de GetBuildInfo(var V1, V2, V3, V4: Word AFileName: string = '): Boolean
{
& nbsp Cette procedure renvoie a l'individu Majeur/Mineur/Version/Build
& nbsp valeurs de l'information de version.
}
var
& nbsp & nbsp VerInfoSize: DWORD
& nbsp & nbsp VerInfo: Pointeur
& nbsp & nbsp VerValueSize: DWORD
& nbsp & nbsp VerValue: PVSFixedFileInfo
& nbsp & nbsp Mannequin: DWORD
begin
& nbsp & nbsp Resultat := True
& nbsp & nbsp si AFileName = '
& ! & ! & ! & nbsp AFileName := ParamStr(0)
& nbsp & nbsp VerInfoSize := GetFileVersionInfoSize(PChar(AFileName), Dummy)
& nbsp & nbsp si VerInfoSize = 0, alors
& nbsp & nbsp commencer
& ! & ! & ! & nbsp Resultat := False
& ! & ! & ! & nbsp Sortie
& nbsp & nbsp fin
& nbsp & nbsp GetMem(VerInfo, VerInfoSize)
& nbsp & nbsp essayer
& ! & ! & ! & nbsp GetFileVersionInfo(PChar(AFileName), 0, VerInfoSize, VerInfo)
& ! & ! & ! & nbsp VerQueryValue(VerInfo, '\', Pointeur(VerValue), VerValueSize)

& ! & ! & ! & nbsp avec VerValue^ do
& ! & ! & ! & nbsp commencer
& ! & ! & ! & ! & ! & nbsp V1 := dwFileVersionMS shr 16
& ! & ! & ! & ! & ! & nbsp V2 := dwFileVersionMS et $FFFF
& ! & ! & ! & ! & ! & nbsp V3 := dwFileVersionLS shr 16
& ! & ! & ! & ! & ! & nbsp V4 := dwFileVersionLS et $FFFF
& ! & ! & ! & nbsp fin
& nbsp & nbsp enfin
& ! & ! & ! & nbsp FreeMem(VerInfo, VerInfoSize)
& nbsp & nbsp fin
fin

fonction de GetBuildInfoAsString(AFileName: string = '): string
var
& nbsp & nbsp V1: Mot
& nbsp & nbsp V2: Mot
& nbsp & nbsp V3: Mot
& nbsp & nbsp V4: Mot
begin
& nbsp & nbsp si GetBuildInfo(V1, V2, V3, V4)
& ! & ! & ! & nbsp Resultat := Format ('%d.%d.%d.%d', [V1, V2, V3, V4])
& nbsp & nbsp else
& ! & ! & ! & nbsp Resultat := '
fin

a la fin.


Numéro de version

Numéro de version : Plusieurs milliers de conseils pour vous faciliter la vie.
Recommander aux amis
  • gplus
  • pinterest

Messages récents

Commentaire

Laisser un commentaire

évaluation