Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Saber la versión de un ejecutable (https://www.clubdelphi.com/foros/showthread.php?t=86509)

MAXIUM 23-08-2014 00:54:27

Saber la versión de un ejecutable
 
Saludos,

¿Como puedo obtener la versión de otro ejecutable que obviamente posea dicha información? :rolleyes:

http://es.wikipedia.org/wiki/Versi%C3%B3n_de_software
http://en.wikipedia.org/wiki/Software_versioning

Una de las maneras de numerar las versiones de programas consiste en segmentar el número de versión en tres partes, de la manera X.XX.XX:

* El primer segmento es el número de versión propiamente dicho, que se cambia cuando se trata de una revisión en profundidad del programa.
* El segundo segmento es el número de release, que cambia cuando se hace un cambio de funcionalidad importante en el programa, pero no tan importante como para que sea un cambio de versión. Además existe la costumbre de que las los números impares de release son inestables, mientras que cuando se llega a una versión estable se cambia a un número par.
* El tercer segmento es el numero de build dentro de la release.
Tambien esta el que numera las versiones segun se vaya incrementando en cuanto a funcionalidad.

ecfisa 23-08-2014 01:18:39

Hola MAXIUM.
Cita:

Empezado por MAXIUM (Mensaje 480291)
...
¿Como puedo obtener la versión de otro ejecutable que obviamente posea dicha información? :rolleyes:
...

Si te referis a un archivo ejecutable podes hacer:
Código Delphi [-]
function GetExeVersion(const aFileName: string): string;
var
  sz1,sz2: DWord;
  P1, P2: Pointer;
begin
  if not FileExists(aFileName) then Exit;
  sz1:= GetFileVersionInfoSize(PChar(aFileName), sz2);
  if sz1 > 0 then
  begin
    GetMem(p1, sz1);
    try
      GetFileVersionInfo (PChar(aFileName), 0, sz1, p1);
      VerQueryValue(p1, '\', p2, sz2);
      with TVSFixedFileInfo(p2^) do
      begin
        Result:= Format('%d.%d.%d.%d', [HiWord(dwFileVersionMS),
          LoWord(dwFileVersionMS),HiWord(dwFileVersionLS),LoWord(dwFileVersionLS)]);
      end;
    finally
      FreeMem(p1);
    end;
   end;
end;

Uso:
Código Delphi [-]
  ShowMessage(GetExeVersion('C:\Windows\regedit.exe'));

Saludos :)

MAXIUM 23-08-2014 04:04:59

Excelente. Muchisimas gracias :)


La franja horaria es GMT +2. Ahora son las 04:21:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi