TiammatMX,
Cita:
Empezado por TiammatMX
...Tengo un EXE compilado en Delphi XE2, y deseo extraer la versión del mismo, de preferencia sin utilizar componentes o productos de tercero...
|
Revisa este código:
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function GetFileVersion(const FileName: String) : String;
var
InfoSize, Handle : LongWord;
Buffer : Array of Byte;
FileInfo : PVSFixedFileInfo;
begin
try
InfoSize := GetFileVersionInfoSize(PChar(FileName), Handle);
SetLength(Buffer, InfoSize);
GetFileVersionInfo(PChar(FileName), Handle, InfoSize, Buffer);
VerQueryValue(Buffer, '\', Pointer(FileInfo), InfoSize);
Result := Format('%d.%d.%d.%d', [LongRec(FileInfo.dwFileVersionMS).Hi,
LongRec(FileInfo.dwFileVersionMS).Lo,
LongRec(FileInfo.dwFileVersionLS).Hi,
LongRec(FileInfo.dwFileVersionLS).Lo]);
except
Result := '0.0.0.0';
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
FileName : String;
MsgUsr, MsgApp : String;
begin
FileName := 'C:\Program Files\Borland\Delphi7\Bin\delphi32.exe';
MsgApp := 'GetFileVersion';
MsgUsr := Format('%s v%s',[ExtractFileName(FileName),GetFileVersion(FileName)]);
MessageBox(Handle, PChar(MsgUsr), PChar(MsgApp), MB_OK + MB_ICONINFORMATION);
end;
end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32,
Permite obtener la versión de un archivo ejecutable (Major version, Minor version, Release, Build), como se muestra en la siguiente imagen:
Espero sea útil
Nelson.