Versionsnummer der Anwendung


Wie man die Versionsnummer einer Anwendung zur Laufzeit
Einheit GetVersionInfo;

Schnittstelle

verwendet
Windows, Klassen, SysUtils;

Prozedur GetProjectVersionInfo (AVersionList: TStrings; AFileName: string = '');
Funktion GetBuildInfo (Var V1, V2, V3, V4: Word; AFileName: string = ''): Boolean;
Funktion GetBuildInfoAsString (AFileName: String = ''): string;

Umsetzung

Typ
PTransBuffer = ^ TTransBuffer;
TTransBuffer = Array [1..13] smallint;

const
CInfoStr: Array [1..13] Zeichenfolge =
('FileVersion',
'Firma',
'DateiBeschreibungTCP',
'InternalName',
'LegalCopyright',
'LegalTradeMarks',
'OriginalFileName',
'ProductName',
'ProductVersion',
'Kommentare',
'CurrentProgramVersion',
'CurrentDatabaseVersion',
'VersionDetails');

Prozedur GetProjectVersionInfo (AVersionList: TStrings; AFileName: string = '');
{
Dieses Verfahren liefert alle Informationen zur Version als separate
Zeichenfolgeneinträgen einer TString-Liste. Jedes Element kann dann zugegriffen werden
durch die Indizierung der TString-Liste so: AVersionList [0], AVersionList [1] etc...
}
var
I: Integer;
InfoSize: DWORD;
pTrans: PTransBuffer;
TransStr: String;
TypeStr: String;
Wert: PChar;
VerBuf: Zeiger;
VerSize: DWORD;
WND: DWORD;
beginnen
AVersionList.Clear;
Wenn AFileName = '' dann
AFileName: = ParamStr(0);
InfoSize: = GetFileVersioninfoSize(PChar(AFileName), Wnd);

Wenn (InfoSize <> 0) dann
beginnen
GetMem (VerBuf, InfoSize);
versuchen Sie
Wenn GetFileVersionInfo(PChar(AFileName), Wnd, InfoSize, VerBuf) dann
beginnen
VerQueryValue (VerBuf, PChar('\VarFileInfo\Translation'),
Pointer(pTrans), VerSize);

TransStr: = IntToHex (pTrans ^ [1], 4) + IntToHex (pTrans ^ [2], 4);

für i: = Low(CInfoStr) High(CInfoStr) Do
beginnen
TypeStr: = 'StringFileInfo\' + TransStr + ' \' + CInfoStr [I];

Wenn VerQueryvalue (VerBuf, PChar(TypeStr),
Pointer(Value), VerSize) dann
AVersionList.Add (CInfoStr [I] + '=' + Wert);
Ende
Ende;
Schließlich
FreeMem(VerBuf);
Ende;
Ende;
Ende;

Funktion GetBuildInfo (Var V1, V2, V3, V4: Word; AFileName: string = ''): Boolean;
{
Diese Prozedur gibt den einzelnen Major/Minor/Release/Build
Werte der Versionsinformationen.
}
var
VerInfoSize: DWORD;
VerInfo: Zeiger;
VerValueSize: DWORD;
VerValue: PVSFixedFileInfo;
Dummy: DWORD;
beginnen
Ergebnis: = True;
Wenn AFileName = '' dann
AFileName: = ParamStr(0);
VerInfoSize: = GetFileVersionInfoSize(PChar(AFileName), Dummy);
Wenn VerInfoSize = 0 then
beginnen
Ergebnis: = False;
Ausfahrt;
Ende;
GetMem (VerInfo, VerInfoSize);
versuchen Sie
GetFileVersionInfo(PChar(AFileName), 0, VerInfoSize, VerInfo);
VerQueryValue (VerInfo, ' \', Pointer(VerValue), VerValueSize);

mit VerValue ^ tun
beginnen
V1: = DwFileVersionMS Shr 16;
V2: = DwFileVersionMS und $FFFF;
V3: = DwFileVersionLS Shr 16;
V4: = DwFileVersionLS und $FFFF;
Ende;
Schließlich
FreeMem (VerInfo, VerInfoSize);
Ende;
Ende;

Funktion GetBuildInfoAsString (AFileName: String = ''): string;
var
V1: Word;
V2: Word;
V3: Word;
V4: Word;
beginnen
Wenn GetBuildInfo (V1, V2, V3, V4) dann
Ergebnis: = Format ('% d. % d. % d. %d', [V1, V2, V3, V4])
sonst
Ergebnis: = '';
Ende;

Ende.









Versionsnummer der Anwendung


Versionsnummer der Anwendung : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


Wie man die Versionsnummer einer Anwendung zur Laufzeit
Einheit GetVersionInfo;

Schnittstelle

verwendet
Windows, Klassen, SysUtils;

Prozedur GetProjectVersionInfo (AVersionList: TStrings; AFileName: string = '');
Funktion GetBuildInfo (Var V1, V2, V3, V4: Word; AFileName: string = ''): Boolean;
Funktion GetBuildInfoAsString (AFileName: String = ''): string;

Umsetzung

Typ
PTransBuffer = ^ TTransBuffer;
TTransBuffer = Array [1..13] smallint;

const
CInfoStr: Array [1..13] Zeichenfolge =
('FileVersion',
'Firma',
'DateiBeschreibungTCP',
'InternalName',
'LegalCopyright',
'LegalTradeMarks',
'OriginalFileName',
'ProductName',
'ProductVersion',
'Kommentare',
'CurrentProgramVersion',
'CurrentDatabaseVersion',
'VersionDetails');

Prozedur GetProjectVersionInfo (AVersionList: TStrings; AFileName: string = '');
{
Dieses Verfahren liefert alle Informationen zur Version als separate
Zeichenfolgeneinträgen einer TString-Liste. Jedes Element kann dann zugegriffen werden
durch die Indizierung der TString-Liste so: AVersionList [0], AVersionList [1] etc...
}
var
I: Integer;
InfoSize: DWORD;
pTrans: PTransBuffer;
TransStr: String;
TypeStr: String;
Wert: PChar;
VerBuf: Zeiger;
VerSize: DWORD;
WND: DWORD;
beginnen
AVersionList.Clear;
Wenn AFileName = '' dann
AFileName: = ParamStr(0);
InfoSize: = GetFileVersioninfoSize(PChar(AFileName), Wnd);

Wenn (InfoSize <> 0) dann
beginnen
GetMem (VerBuf, InfoSize);
versuchen Sie
Wenn GetFileVersionInfo(PChar(AFileName), Wnd, InfoSize, VerBuf) dann
beginnen
VerQueryValue (VerBuf, PChar('\VarFileInfo\Translation'),
Pointer(pTrans), VerSize);

TransStr: = IntToHex (pTrans ^ [1], 4) + IntToHex (pTrans ^ [2], 4);

für i: = Low(CInfoStr) High(CInfoStr) Do
beginnen
TypeStr: = 'StringFileInfo\' + TransStr + ' \' + CInfoStr [I];

Wenn VerQueryvalue (VerBuf, PChar(TypeStr),
Pointer(Value), VerSize) dann
AVersionList.Add (CInfoStr [I] + '=' + Wert);
Ende
Ende;
Schließlich
FreeMem(VerBuf);
Ende;
Ende;
Ende;

Funktion GetBuildInfo (Var V1, V2, V3, V4: Word; AFileName: string = ''): Boolean;
{
Diese Prozedur gibt den einzelnen Major/Minor/Release/Build
Werte der Versionsinformationen.
}
var
VerInfoSize: DWORD;
VerInfo: Zeiger;
VerValueSize: DWORD;
VerValue: PVSFixedFileInfo;
Dummy: DWORD;
beginnen
Ergebnis: = True;
Wenn AFileName = '' dann
AFileName: = ParamStr(0);
VerInfoSize: = GetFileVersionInfoSize(PChar(AFileName), Dummy);
Wenn VerInfoSize = 0 then
beginnen
Ergebnis: = False;
Ausfahrt;
Ende;
GetMem (VerInfo, VerInfoSize);
versuchen Sie
GetFileVersionInfo(PChar(AFileName), 0, VerInfoSize, VerInfo);
VerQueryValue (VerInfo, ' \', Pointer(VerValue), VerValueSize);

mit VerValue ^ tun
beginnen
V1: = DwFileVersionMS Shr 16;
V2: = DwFileVersionMS und $FFFF;
V3: = DwFileVersionLS Shr 16;
V4: = DwFileVersionLS und $FFFF;
Ende;
Schließlich
FreeMem (VerInfo, VerInfoSize);
Ende;
Ende;

Funktion GetBuildInfoAsString (AFileName: String = ''): string;
var
V1: Word;
V2: Word;
V3: Word;
V4: Word;
beginnen
Wenn GetBuildInfo (V1, V2, V3, V4) dann
Ergebnis: = Format ('% d. % d. % d. %d', [V1, V2, V3, V4])
sonst
Ergebnis: = '';
Ende;

Ende.


Versionsnummer der Anwendung

Versionsnummer der Anwendung : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Versionsnummer der Anwendung
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung