バージョン情報の取得

GetFileVersionInfoSize, GetFileVersionInfo, VerQueryValueを使う

var
Buffer, Language, Charset, Inf: string;
Size, Temp: Cardinal;
p, Value: Pointer;
Lang: ^DWORD;
begin
Size := GetFileVersionInfoSize(PChar(Application.EXEName), Temp);
if(Size <> 0)then
begin
SetLength(Buffer, Size);
if(GetFileVersionInfo(PChar(Application.EXEName), Temp, Size, PChar(Buffer)))then
begin
if(VerQueryValue(PChar(Buffer),'\VarFileInfo\Translation', p, Size))then
begin
Lang := p;
Language := IntToHex(Lang^, 8);
CharSet := Copy(Language, 1, 4);
Language := Copy(Language, 5, 4);
Inf := '\StringFileInfo\' + Language + Charset + '\FileVersion';
        VerQueryValue(PChar(Buffer), PChar(Inf), Value, Size);
Version.Caption := 'Version ' + PChar(Value);
end;
end;
end;
end;

0.1.2.3(メジャー.マイナー.リリース.ビルド)形式の文字列として入手できる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です