Ver Mensaje Individual
  #4  
Antiguo 11-06-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
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
    { Private declarations }
  public
    { Public declarations }
  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.
Responder Con Cita